Thread Buchstabenpaare aus String mit Regex / Split
(9 answers)
Opened by Eggi at 2015-05-02 15:31
Hallo Eggi,
hier eine Lösung mit substr(), da Du auch nach anderen Möglichkeiten gefragt hast. Ich möchte aber darauf hinweisen, dass mein Code eher "oldfashioned" ist und daher wahrscheinlich mit Modern Perl nix zu tun hat. Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 #!/usr/bin/perl use strict; use warnings; my $string = "Hello World"; # Leerzeichen aus $string entfernen my @gruss = split( / /, $string); my %hash; foreach my $word (@gruss){ for (0 .. length($word)-1){ # Buchstaben in Hash ablegen $hash{ substr($word, $_, 1) }++; } } # Ausgabe der Einzel-Ergebnisse print map { "$_ => $hash{$_}\n" } sort keys %hash; print "\n"; # %hash leeren %hash = (); # Buchstabenpaare foreach my $word (@gruss){ for (0 .. length($word)-1){ my $erg = substr(uc($word), $_, 2); # beenden wenn keine Paarbildung mehr möglich ist last if( length($erg) < 2); # Buchstabenpaare ablegen $hash{ $erg }++; } } # Ausgabe Buchstabenpaar - Ergebnisse print map { "$_ => $hash{$_}\n" }sort keys %hash; print "\n"; Man kann das sicher auch noch etwas verkürzen, verliert aber dann an Übersichtlichkeit. Gruß, charly54 |