Avatar billede keet Nybegynder
11. februar 2003 - 00:38 Der er 6 kommentarer

string halvering

Har en streng "aaa bbb ccc ddd eee fff", som jeg gerne vil have splittet op i 2 lige store strenge. Men ordene i strengen må ikke blive splittet ad. Dvs at der kun må splittes der hvor man støder på et mellemrum " ". Kan det ikke laves vha. Regular Expresions? Hvordan?
Avatar billede olebole Juniormester
11. februar 2003 - 00:46 #1
<ole>

Hvad har første prioritet? Kan din streng f.eks. se sådan ud:
  "aaa bbb ccc ddd eee"

/mvh
</bole>
Avatar billede jakoba Nybegynder
11. februar 2003 - 01:05 #2
<?php
$streng = "aaa bbb ccc ddd eee fff";
$mid = floor(strlen($streng)/2);

$fnd = -1;
for $i=0; $i<$mid; $i++) {
    if ( substr($streng,$mid+$i,1) == " " ) {
        $fnd = $mid + $i;
        break;
    }
    if ( substr($streng,$mid-$i,1) == " " ) {
        $fnd = $mid - $i;
        break;
    }
}
if ( $fnd < 0 ) {
    // den streng kan ikke deles.
    $res_1 = $streng;
    $res_2 = "";
} else {
    $res_1 = substr($streng,0,$fnd);
    $res_2 = substr($streng,$fnd+1);
}

echo "--" .$streng ."-- bliver --" .$res_1 ."--" .$res_2 ."--<br>";
?>

mvh JakobA
Avatar billede jakoba Nybegynder
11. februar 2003 - 01:06 #3
Ups. mangler en  (  i for linien:
for ($i=0; $i<$mid; $i++) {
Avatar billede keet Nybegynder
11. februar 2003 - 23:25 #4
takker det fungerer fint :)
Avatar billede jakoba Nybegynder
12. februar 2003 - 01:36 #5
så er det vel et svar.
Avatar billede olebole Juniormester
12. februar 2003 - 03:45 #6
<ole>

Et andet bud kunne være:

<?

$str = "aaa bbb ccc ddd eee fff";
$arr = explode( " ", $str );
$num = count($arr);
for ($i=0; $i<$num; $i++) {
    if ( $i<floor($num/2) ) $arr1[] = $arr[$i];
    else $arr2[] = $arr[$i];
}
print implode( " ", $arr1 )."<br>\n";
print implode( " ", $arr2 )."<br>\n";

?>

/mvh
</bole>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester