Sandra: Zeichen in String zählen

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

  1. Hi,

    und möchte zählen, wie viele Punkte darin enthalten sind. Geht das?

    perldoc -f tr///

    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

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
  2. 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:

    den string in eine variable schreiben

    $mit_punkten = "a.b.b.c.c";

    und in eine andere kopieren

    $ohne_punkte = $mit_punkten;
    print($mit_punkten);
    print("<BR>");

    mit regulärem ausdruck alle punkte aus $ohne_punkte entfernen

    siehe < http://de.selfhtml.org/perl/sprache/regexpr.htm>

    $ohne_punkte =~ s/.//g;
    print($ohne_punkte);
    print("<BR>");

    anzahl zeichen mit punkten ermitteln

    siehe < http://de.selfhtml.org/perl/funktionen/zeichenketten.htm#length>

    $laenge_mit_punkten = length($mit_punkten);

    anzahl zeichen ohne punkte ermitteln

    $laenge_ohne_punkte = length($ohne_punkte);

    anzahl punkte muss der differenz entsprechen

    $anzahl_punkte = $laenge_mit_punkten - $laenge_ohne_punkte;
    print($anzahl_punkte);
    print("<BR>");

    Aber vergiss nicht gelegentlich in Selfhtml zu suchen!

    l.g. Karl :-)´

    1. 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

      --
      Hier könnte Ihre Werbung stehen.
      Viel Lärm um nichts || Steuerliche Einordnung des Rangrücktritts
      1. 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 :-))´

        1. 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

          --
          Hier könnte Ihre Werbung stehen.
          Viel Lärm um nichts || Steuerliche Einordnung des Rangrücktritts
          1. 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 :-)´

        2. 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

          --
          Warum nennt sich Andreas hier MudGuard?
          Schreinerei Waechter
          O o ostern ...
          Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
      2. 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

        --
        "It's amazing I won. I was running against peace, prosperity, and incumbency."
        George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
        Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)