Schnaps: Anzahl unterschiedlicher Zeichen in einem String berechnen?

Guten Morgen

Also mein Problem habe ich eigentlich  schon in der Überschrift geschrieben.

ich habe einen string und möchte gerne wissen wieviele unterschiedliche Zeichen in diesem enthalten sind.

bräuchte eine grobe Richtung oder einen Ansatz wie ich es am besten angehen sollte.

MFG
Schnaps

  1. Hallo,

    ich würd ein hash nehmen.
    du durchläufst den den string von vorne bis hinten, nimmst immer einen buchstaben, guckst ob in $hash{$buchstabe} schon was drinsteht, wenn nicht legst du einen neuen eintrag an $hash{$buchstabe}=1; wenn ja, dann inkrementierst du nur $hash{$buchstabe}++;
    am ende kannst du dann die vorhandenen buchstaben mit
    foreach(keys(%hash)){print $_.":".$hash{$_}."<br>\n";} anzeigen lassen.

    gruss

    --
    no strict;
    no warnings;
    Über eine Rückmeldung freut sich später jeder, der das gleiche Problem hat und im Archiv nach einer Lösung sucht.
  2. Hallo Schnaps,

    ich habe einen string und möchte gerne wissen wieviele unterschiedliche Zeichen in diesem
    enthalten sind.

    my $str  = 'aaabbbccc';
    my %hash = ();
    $hash{$_} = 1 foreach split // => $str;

    print "String hat ",scalar keys %hash," unterschiedliche Buchstaben\n";

    Grüße,
     CK

    --
    Sein oder nicht sein, das ist hier die Frage!
    http://wwwtech.de/
  3. Hallo Schnaps,

    lies mal das:

    perlfaq4 - Data Manipulation

    If you want a count of a certain single character (X) within a string, you can use the tr/// function like so:

    $string = "ThisXlineXhasXsomeXx'sXinXit";
        $count = ($string =~ tr/X//);
        print "There are $count X characters in the string";

    Grüße Oesi