Gewichtung einzelner Zeichen im String

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Gewichtung einzelner Zeichen im String

    Um den Inhalt von ID3 Tags zu gewichten möchte ich den einzelnen Stellen eines Strings eine Wertung zuweisen. Diese Wertungen sollen dann zusammen gezählt werden. Praktisch sieht das so aus:
    Code:
             [b]K  ü  n  s  t  l  e  r  _  N  a  m  e  _  0  2[/b]
    Wertung: [i]2  2  2  2  2  2  2  2  3  2  2  2  2  3  1  1[/i]  =  [b]32[/b]
    Leerzeichen werden also mehr gewichtet als Buchstaben, Zahlen weniger als Buchstaben - die Werte sind dabei egal, das Ergebnis zählt. Die Frage ist wie man das programmiertechnisch am besten realisiert. Ich habe schon über zwei Möglichkeiten nachgedacht - zum einen könnte man die Zeichen durch die Zahlen ersetzen und diese addieren - zum anderen könnte man mit einer Schleife über die Zeichen laufen. Bei ersterem fehlt etwas einfaches um die die Zahlen zu addieren (= die Quersumme bilden). Bei der anderen Möglichkeit stört mich die Schleife etwas, bezüglich der Performance würde ich gerne ohne auskommen.
    Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

  • #2
    Ehm... eine Schleife über einen String mit den ganz normalen String-Funktionen "kostet" praktisch nichts - und ist definitiv "günstiger" als alle Buchstaben zu ersetzen und zu versuchen das hinterher irgendwie zu addieren...

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      PHP-Code:
      for ( $i 0$i strlen $string ); $i ++ ) {
         if ( 
      ord $string $i ] ) > 96 and ord $string $i ] ) < 123 ) {
            
      $valuation += 2;
         } elseif ( 
      ord $string $i ] ) == 32 ) {
            
      $valuation += 3;
         } else {
            
      $valuation += 1;
         }

      Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

      Kommentar

      Lädt...
      X