Wortlänge überprüfen
Stan
- php
0 Ashura-1 Marian
Hi,
Gibt es eine Funktion, mit der man überprüfen kann, ob ein Text ein Wort enthölt, das eine bestimmte Länge überschritten hat?
Stan
puts "Hallo " + gets.chomp + "."
?> Stan
=> Hallo Stan.
Gibt es eine Funktion, mit der man überprüfen kann, ob ein Text ein Wort enthölt, das eine bestimmte Länge überschritten hat?
Erstelle eine Abfrage, ob die Stringlänge einen bestimmten Wert überschreitet. Die Länge kannst du mit strlen() ermitteln.
Einen schönen Samstag noch.
Gruß, Ashura
Hi Stan,
Gibt es eine Funktion, mit der man überprüfen kann, ob ein Text ein Wort enthölt, das eine bestimmte Länge überschritten hat?
$text = explode(" ", $text);
foreach($text as $key => $value)
{
if(strlen($value) > 123)
echo "viel zu lang!";
}
Gruß, Marian
puts "Hallo " + gets.chomp + "."
?> Marian
=> Hallo Marian.
Gibt es eine Funktion, mit der man überprüfen kann, ob ein Text ein Wort enthölt, das eine bestimmte Länge überschritten hat?
[... vorgekaut ...]
Und? Der Lerneffekt bei solchen Antworten tendiert Richtung Null.
Einen schönen Sonntag noch.
Gruß, Ashura
Huhu Ashura
[... vorgekaut ...]
Und? Der Lerneffekt bei solchen Antworten tendiert Richtung Null.
Mmmmh, jetzt traue ich mich fast nicht mehr ....
.... aber nur fast ;-)
Da ich die Aufgabenstellung ganz erquicklich fand und ich ein wenig gebastelt habe möchte ich diese meine fertige Lösung jetzt auch noch loswerden.
Da ich einige etwas exotischere Funktionen "verbraten" habe gibt es ja vielleicht doch einen kleinen Lerneffekt.
Naja, mir hat es jedenfalls Spass gemacht.
<?php
$text = 'Das ist doch sehr einfach mit dem längsten Wort, oder?
Da kann man einen regulären Ausdruck benutzen.
Oder wir erzeugen ein Array durch extrahieren sämtlicher Worte aus diesem Text
und sortieren das Array einfach nach der Länge der Zeichenketten.
Oder wir wenden die Funktion array_filter an um alle Worte rauszuschmeißen die eine
vorgegebene Länge überschreiten. Solange der Text nicht zu lang wird sollte das auch einigermassen resourcenschonend funktionieren, aber wehe wenn man da z.B. Krieg und Frieden reinsteckt ...';
$max_length = 12;
// per RegExp gucken ob ein so langes Wort enthalten ist ...
if (preg_match('#\w{'.$max_length.'}#', $text)){
printf ('Ja, da ist ein Wort mindestens %d Zeichen lang.', $max_length);
}
echo '<hr>';
// ok, warum nicht die Treffer gleich ausgeben ...
if (preg_match_all('#(\b\w{'.$max_length.',}\b)#', $text, $matches)){
printf ('Ja, da ist mindestens ein Wort %d Zeichen oder länger. Und zwar:<ul><li>%s</li></ul>', $max_length, join('</li><li>', $matches[1]));
}
echo '<hr>';
// aber warum einfach wenn es auch umständlich geht ...
$words = preg_split('#\W+#', $text);
$xxl = array_filter($words, create_function('$v',"return strlen($v) >= $max_length;"));
printf ('Ja, da ist mindestens ein Wort %d Zeichen oder länger. Und zwar:<ul><li>%s</li></ul>', $max_length, join('</li><li>', $xxl));
echo '<hr>';
// mit array_map bekommen wir leicht die Länge sämtlicher Strings ...
$lengths = array_map ('strlen', $words);
printf('Das Längste Wort enthält übrigens %d Zeichen', max($lengths));
// jetzt wollen wir zum Abschluss noch alle Wörter hübsch geordnet haben ...
array_multisort($lengths,SORT_DESC,$words);
printf ('<h1>Alle Worte nach Länge absteigend geordnet</h1><ul><li>%s</li></ul>', join('</li><li>', $words));
?>
Gute Nacht
lulu
puts "Hallo " + gets.chomp + "."
?> lulu
=> Hallo lulu.
Und? Der Lerneffekt bei solchen Antworten tendiert Richtung Null.
[...]
Da ich die Aufgabenstellung ganz erquicklich fand und ich ein wenig gebastelt habe möchte ich diese meine fertige Lösung jetzt auch noch loswerden.
Da ich einige etwas exotischere Funktionen "verbraten" habe gibt es ja vielleicht doch einen kleinen Lerneffekt.
Es gibt ja hier mindestens einen, der dazugelernt hat: dich. ;-)
Einen schönen Sonntag noch.
Gruß, Ashura