Stan: Wortlänge überprüfen

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

  1. 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

    --
    Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:) va:) de:> zu:) fl:( ss:| ls:[ js:|
    30 Days to becoming an Opera8 Lover -- Day 20: search.ini
    Meine Browser: Opera 8.01 | Firefox 1.0.4 | Lynx 2.8.3 | Netscape 4.7 | IE 6.0
    [Deshalb frei! - Argumente pro freie Software]
  2. 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

    1. 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

      --
      Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:) va:) de:> zu:) fl:( ss:| ls:[ js:|
      30 Days to becoming an Opera8 Lover -- Day 20: search.ini
      Meine Browser: Opera 8.01 | Firefox 1.0.4 | Lynx 2.8.3 | Netscape 4.7 | IE 6.0
      [Deshalb frei! - Argumente pro freie Software]
      1. 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

        --
        bythewaythewebsuxgoofflineandenjoytheday
        1. 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

          --
          Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:) va:) de:> zu:) fl:( ss:| ls:[ js:|
          30 Days to becoming an Opera8 Lover -- Day 20: search.ini
          Meine Browser: Opera 8.01 | Firefox 1.0.4 | Lynx 2.8.3 | Netscape 4.7 | IE 6.0
          [Deshalb frei! - Argumente pro freie Software]