Thread Buchstabenpaare aus String mit Regex / Split (9 answers)
Opened by Eggi at 2015-05-02 15:31

charly54
 2015-05-02 20:44
#180908 #180908
User since
2015-04-24
10 Artikel
BenutzerIn
[default_avatar]
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

View full thread Buchstabenpaare aus String mit Regex / Split