Zeichen in String zählen
Sandra
- perl
Hallo,
ist es möglich in einem String die Häufigkeit eines bestimmten Zeichens zu zählen?
Sagen wir ich habe den String:
a.b.b.c.c
und möchte zählen, wie viele Punkte darin enthalten sind. Geht das?
und noch eine andere Frage, kann man aus dem oben genannten string auch die Punkte einfach ausschneiden, sodass ich danach nur noch den String abbcc habe?
Mfg,
Sandra
Hi,
und möchte zählen, wie viele Punkte darin enthalten sind. Geht das?
und noch eine andere Frage, kann man aus dem oben genannten string auch die Punkte einfach ausschneiden, sodass ich danach nur noch den String abbcc habe?
Perl besitzt eine Vielzahl von String-Funktionen. Schaue Dir die mitgelieferte Dokumentation an.
Cheatah
ist es möglich in einem String die Häufigkeit eines bestimmten Zeichens zu zählen?
Sagen wir ich habe den String:
a.b.b.c.c
und möchte zählen, wie viele Punkte darin enthalten sind. Geht das?und noch eine andere Frage, kann man aus dem oben genannten string auch die Punkte einfach ausschneiden, sodass ich danach nur noch den String abbcc habe?
Hallo Sandra
In diesem Fall zäumst Du das Pferd am besten von hinten auf.
Hier Dein Beispielcode:
$mit_punkten = "a.b.b.c.c";
$ohne_punkte = $mit_punkten;
print($mit_punkten);
print("<BR>");
$ohne_punkte =~ s/.//g;
print($ohne_punkte);
print("<BR>");
$laenge_mit_punkten = length($mit_punkten);
$laenge_ohne_punkte = length($ohne_punkte);
$anzahl_punkte = $laenge_mit_punkten - $laenge_ohne_punkte;
print($anzahl_punkte);
print("<BR>");
Aber vergiss nicht gelegentlich in Selfhtml zu suchen!
l.g. Karl :-)´
Hell-O!
In diesem Fall zäumst Du das Pferd am besten von hinten auf.
Nö, warum das?
Hier Dein Beispielcode:
[...]
Du hast Cheatahs Posting nicht gelesen resp. bist dem Link nicht gefolgt? Für die Aufgabenstellung ist tr/// genau das richtige:
my $original = my $kopie = 'aa.bb.cc.foo';
my $anzahl = $kopie =~ tr/\.//d;
print $anzahl, ' Punkte aus ', $original, ' geloescht. Ergebnis: ', $kopie;
Dein Weg ist irgendwie von hinten durch die Brust ins linke Nasenloch :-)
Siechfred
Hallo Siechfred
Du hast Cheatahs Posting nicht gelesen resp. bist dem Link nicht gefolgt? Für die Aufgabenstellung ist tr/// genau das richtige:
Natürlich bin ich dem Link gefolgt. Aber ausser "Same as y///" und dann wieder "Same as tr///" ist dort nicht viel zu lesen.
Sandra (die wohl noch nicht viel Perlerfahrung hat) ist damit wohl kaum geholfen. Und darum sollte es hier doch gehen. Oder?
Zugegeben: Der tr// ist für diese Aufgabenstellung besser geeignet. Und ich gebe auch zu dass ich den noch gar nicht kannte :-(
Dein Weg ist irgendwie von hinten durch die Brust ins linke Nasenloch :-)
Mit einem Hinweis wie http://de.selfhtml.org/perl/sprache/regexpr.htm#transliteration ist Sandra vielleicht mehr geholfen als sich mit diversen Löchern in meiner Anatomie zu beschäftigen.
Nichts für ungut. Immehin hab ich den tr// gelernt. Also doch gehofen!
l.g. Karl :-))´
Sandra (die wohl noch nicht viel Perlerfahrung hat) ist damit wohl kaum geholfen. Und darum sollte es hier doch gehen. Oder?
Jupp. Ich wollte halt neben deiner umständlichen Herangehensweise zeigen, wie es kurz und schmerzlos geht, zumal nach Studium von perlop mein kleines Stückchen Code kein Geheimnis mehr sein sollte :-)
Dein Weg ist irgendwie von hinten durch die Brust ins linke Nasenloch :-)
Mit einem Hinweis [...] ist Sandra vielleicht mehr geholfen als sich mit diversen Löchern in meiner Anatomie zu beschäftigen.
Oh, habe ich das getan? Es täte mir Leid, wenn du dabei Schaden genommen hättest ;-)
Siechfred
Hallo Siechfred
Oh, habe ich das getan? Es täte mir Leid, wenn du dabei Schaden genommen hättest ;-)
Nun Schaden scheint keiner entstanden zu sein. Zumindest ist nach meiner eben abgeschlossenen "bierigen" Besprechung keine Lache am Boden gewesen. Ich deute das als Indiz dafür dass ich keine (unkontrollierbaren) Löcher habe.
l.g Karl :-)´
Hi,
Natürlich bin ich dem Link gefolgt. Aber ausser "Same as y///" und dann wieder "Same as tr///" ist dort nicht viel zu lesen.
Doch - da ist jeweils noch ein Link dahinter ...
cu,
Andreas
Hi Siechfred!
Dein Weg ist irgendwie von hinten durch die Brust ins linke Nasenloch :-)
Das wär ja viel zu umständlich.
|scnr| ;-)
MfG H☼psel