Buchstaben Zählen Aufgabe

Zrebna

Bekanntes Mitglied
Hi!

Es geht um folgende zwei Aufgaben:

Aufgabe 1:
Java:
package ex1;

public class CharCounterPresentation {
   

    public static void main(String[] args) {
        String s = "AAAAKKAAB";
               
        char[] array = s.toCharArray();
        // System.out.println(array.length); == 9
       
        for(int i = 0; i < 26; i++) {
            int counter = 0;
            for(int j = 0; j < 9; j++) {
                if(array[j] == i + 'A' || array[j] == i + 'a') {
                    counter++;
                }
            }
            if(counter > 0) {
                System.out.printf("%d%c", counter, i + 'A');
            }
        }    
    }
}

Dieses Snipet zählt einfach das Vorkommnis jedes Buchstaben und die Ausgabe ist demnach:
6A1B2K

Nun soll die Aufgabe folgendermaßen abgewandelt werden, so dass folgendes rauskommt:
4A2K2A1B

Es fällt zb. sofort auf, dass die Ausgabe nicht mehr alphabetisch vorgeht, sondern in der Reihenfolge des Strings.
Daher müsste nun der String in der äußeren Schleife sein?

Erste Gehversuche bzgl. Aufgabe 2:

Java:
package ex1;

public class CharCounterPresentation {
   

    public static void main(String[] args) {
        String s = "AAAAKKAAB";
               
        char[] array = s.toCharArray();
        // System.out.println(array.length); == 9
       
        for(int i = 0; i < 9-1; i++) {
            int counter = 0;
            for(int j = 0; j < 26; j++) {
                if(array[i] == array[i+1]) {
                    if(array[i] == j + 'A' || array[i] == j + 'a') {
                        counter++;
                    }
                }
            }
            if(counter > 0) {
                System.out.printf("%d%c", counter, i + 'A');
            }
        }
           
    }
}

Da passt also noch gar nichts.
Ich würde genre checken, was da los ist, aber beim Debugging-Tool funzt nicht mehr - weiß hier Jemand Bescheid, warum es nicht mehr geht:


Ich versuche in Zeile 6 den Toogle-Breakingpoint zu setzen, aber es funzt nicht, wie gewohnt.
Auf Klick auf das "Käfer"_Symbol kommt es zur Ausgabe, aber es öffnet sich kein Debugging-window, in dem ich wie gewohnt mit "step over" gucken kann, was das Programm step für step macht.

Kann da evtl. Jemand helfen?

Lg,
Zrebna

Zusatz_OfftopicFrage aus Interesse:

Wieso kann man eigentlich bei Java bzgl. charr-Arrays nicht innerhalb einer Schleife auf Länge so prüfen, wie bei C mittels (ich weiß nicht notwendig hier, aber hypotetisch interessiert es mich) :
" for(i = 0; array != '\0'; i++)
?
Funktionieren char-Arrays in Java speichertechnisch anders und nach dem letztem Buchstaben eines Arrays, folgt nicht '\0'?
 
K

kneitzel

Gast
Also ich würde Dir erst einmal empfehlen Dir zu überlegen, was denn genau gemacht werden müsste.

Also immer erst sauber ein Design überlegen. Einfach nur umstellen kann in 99% der Fälle eigentlich nur schief gehen - wie Dein Code schon zeigt :)
 

mihe7

Top Contributor
Wieso kann man eigentlich bei Java bzgl. charr-Arrays nicht innerhalb einer Schleife auf Länge so prüfen, wie bei C mittels (ich weiß nicht notwendig hier, aber hypotetisch interessiert es mich) :
Natürlich kannst Du das:
Java:
for (int i = 0; i < arr.length; i++) {
}
Oder, wenn Du es lieber C-Style haben willst:
Java:
char[] arr = "MeinString\0".toCharArray();
for (int i = 0; arr[i] != '\0'; i++) {
}
 

Zrebna

Bekanntes Mitglied
Alles klar!
Danke schon mal an alle - ich nehme mich der Aufgabe nochmal bald an und versuche es nochmal, incl. euerer Tips.

Nochmal bzgl. Debugging-Problem:
Keiner eine Idee, warum das bei mir nicht mehr geht? Hat anfänglich immer ohne Probleme funktioniert...wäre schon gut, wenn das wieder gehen würde, weil ich diese Funktion fürs Verständnis oftmals sehr hilfreich fand.
 

Zrebna

Bekanntes Mitglied
break point eine Zeile tiefer
breakpoint eine Zeile tiefer geht auch nichts:

Was genau soll denn in Aufgabe 2 geschehen?
Steht im OP - Ausgabe soll sein:
4A2K2A1B - ist klar, was gemacht werden soll?

Weil es nicht 0-terminiert ist geht das nicht - und zu jedem Array dessen Länge gespeichert wird.
Alles klar, danke.
 
Zuletzt bearbeitet von einem Moderator:

Zrebna

Bekanntes Mitglied
Natürlich kannst Du das:
Java:
for (int i = 0; i < arr.length; i++) {
}
Oder, wenn Du es lieber C-Style haben willst:
Java:
char[] arr = "MeinString\0".toCharArray();
for (int i = 0; arr[i] != '\0'; i++) {
}


also gehts doch - dann doch 0-terminiert, wie bei C oder nicht (siehe Vorposter)?
 
K

kneitzel

Gast
Also 0 terminiert ist ein String in Java normalerweise nicht. Du kannst maximal ein 0 Zeichen einfügen. Wenn Du Das Beispiel von mihe genau betrachtest, dann hat er an den String noch ein \0 angehängt: "MeinString\0"

Aber das brauchst Du nicht in Java, denn so ein Char-Array hat eine bestimmte Größe und die nutzt Du einfach um durch die Zeichenkette zu gehen. Alles andere sind "Hacks", die man so nicht braucht und die auch eher zu Fehlern / schwer verständlichem Code führen.
 
K

kneitzel

Gast
Evtl. sollte man auch darauf hinweisen, dass \0 auch ein Zeichen ist. Die Nutzung als Terminator ist damit auch durchaus nicht unproblematisch. Daher wäre so ein Hack auch ein klarer Schritt in die falsche Richtung (Auch wenn es wohl unwahrscheinlich ist, dass diese Problematik auftritt. Aber die reine Existenz dieser Problematik hat z.B. dazu geführt, dass es für dieses NUL Zeichen in modified UTF noch eine zweite Representation gibt: 0xC0 0x80, damit die, die sowas evtl. brauchen, diese Problematik umgehen konnten...

Aber was schreibe ich - findet sich ja auch alles ausführlich auf Wikipedia: https://en.wikipedia.org/wiki/Null_character
 
X

Xyz1

Gast
Ich überleg gerad, ob es nur Konvention in C ist, dass jedes char * das Nullzeichen zum Schluss enthält, oder das auch durch den Compiler sichergestellt ist...

Jedenfalls kommt man damit in Teufels Küche wie es @kneitzel schon richtig anmerkte. Wäre nicht verwunderlich, wenn dann irgendetwas abstürzte oder in die Luft flög.
 

mihe7

Top Contributor
Nun soll die Aufgabe folgendermaßen abgewandelt werden, so dass folgendes rauskommt:
4A2K2A1B
Nimm mal zwei Blätter Papier. Auf das eine schreibst Du AAAAKKAB. Mit dem anderen verdeckst Du jetzt die Zeichenkette, bis auf den ersten Buchstaben. Jetzt überlegst Du Dir, welche ganz kleinen Schritte Du tun musst, um die Anzahl des ersten Buchstabens (hier: A) zu ermitteln.

runlength.png

Welche Aussagen kannst Du bzgl. des Buchstabens, der Anzahl etc. treffen? Beispielsweise: wann kannst Du mit Sicherheit sagen, dass es sich um 4 As handelt?
 

Zrebna

Bekanntes Mitglied
Also 0 terminiert ist ein String in Java normalerweise nicht. Du kannst maximal ein 0 Zeichen einfügen. Wenn Du Das Beispiel von mihe genau betrachtest, dann hat er an den String noch ein \0 angehängt: "MeinString\0"

Aber das brauchst Du nicht in Java, denn so ein Char-Array hat eine bestimmte Größe und die nutzt Du einfach um durch die Zeichenkette zu gehen.
Diese Größe findet man eben mit der .length-Methode rauß?
Alles andere sind "Hacks", die man so nicht braucht und die auch eher zu Fehlern / schwer verständlichem Code führen.

Ach so, das hab ich in der Tat übersehn - ja, dass es konfiguriert klappt ist sogar mir Noob klar xD
Aber ok, also als Default sind Strings in Java nicht 0-terminiert und die Länge wird mit der .length-Methode ermittelt - gut zu wissen^^
 

Zrebna

Bekanntes Mitglied
@all:
Nochmal wegen dem Debugger - Niemand eine Idee, warum der nicht mehr funzt und was ich da machen könnte?
Vermisse dieses Tool:(
Notfalls eclipse reinstallieren - aber würde schon gerne wissen, warum es plötzlich nicht mehr funzt, damit es nicht nochmal passiert...

edit: Evtl. nicht der beste Forenbereich für diese Frage?
 
K

kneitzel

Gast
Hast Du unter Run evtl. Skip all breakpoints aktiviert (bzw. hast die entsprechende Tastenkombination gedrückt)?

Einfach erneut auswählen und schon sind die Breakpoints wieder aktiv - so es das war, aber danach sieht es aus, denn dann sind die Breakpoint Symbole einfach so durchgestrichen wie in Deinem Bildschirmfoto.
 

Zrebna

Bekanntes Mitglied
Nimm mal zwei Blätter Papier. Auf das eine schreibst Du AAAAKKAB. Mit dem anderen verdeckst Du jetzt die Zeichenkette, bis auf den ersten Buchstaben. Jetzt überlegst Du Dir, welche ganz kleinen Schritte Du tun musst, um die Anzahl des ersten Buchstabens (hier: A) zu ermitteln.

Anhang anzeigen 12338

Welche Aussagen kannst Du bzgl. des Buchstabens, der Anzahl etc. treffen? Beispielsweise: wann kannst Du mit Sicherheit sagen, dass es sich um 4 As handelt?

Also wie ich die Anzahl der ersten 4 As ermittle würde ich noch hinbekommen:

Java:
     for(int i = 0; i < 26; i++) {
            int counter = 0;
            for(int j = 0; j < 9; j++) {
                if(array[j] == i + 'A' || array[j] == i + 'a') {
                    counter++;
                }
            }
            if(counter > 0) {
                System.out.printf("%d%c", counter, i + 'A');
            }
        }
Ausgabe:
6A1B2K

In Worten für Lerneffekt und damit ihr meine Überlegungen nachvollziehen könnt und notfalls korrigieren könnt:
In der äußeren Schleife wird effektiv auf dem Alphabet jeder einzelne Buchstabe genommen und auf den gesamten String angewendet (innere Schleife) - dort wird nun überprüft, ob der gegenwärtig entnommene Buchstabe mit dem Buchstaben an Position 'j' übereinstimmt - falls ja, wird der Zähler erhöht.
Falls der Zähler nach der inneren Schleife >0 ist (d.h. Buchstabe kommt im String mind. einmal vor), wird Anzahl und Buchstabe geprintet.

Meine Probleme mit der neuen Aufgabenstellung sind nun:
1.) Nun soll ja die Ausgabe nicht alphabetisch erfolgen, sondern in der Reihenfolge des Strings.
Daher müsste nun der String in der äußeren Schleife sein?

2.) Desweiteren soll das Zählen nur so lange gehen, wie String(Position) == String(Position+1) ist - also solange nach dem gegenwärtigem Buchstaben der nächste der selbe ist - jedoch soll die letzte Runde auch noch mitgezählt werden, sonst wären es ja 3 As und nicht 4 As im erstem Teilbereich.

Soweit scheint es nicht hinzuhauen:

Java:
package ex1;

public class CharCounterPresentation {
   

    public static void main(String[] args) {
        String s = "AAAAKKAAB";
               
        char[] array = s.toCharArray();
        // System.out.println(array.length); == 9
       
        for(int i = 0; i < 9-1; i++) {
            int counter = 0;
            if(array[i] == array[i+1]) {
            for(int j = 0; j < 26; j++) {
                if(array[i] == j + 'A' || array[i] == j + 'a') {
                    counter++;
                }
            }
            if(counter > 0) {
                System.out.printf("%d%c", counter, i + 'A');
            }
            }
           
        }
           
    }
}

Mir ist klar, warum mein Code nicht funktioniert - ich muss grad dringend "weg" - gucke mir mirgen alles nochmal in Ruhe an - Danke soweit:)
 

Zrebna

Bekanntes Mitglied
Hast Du unter Run evtl. Skip all breakpoints aktiviert (bzw. hast die entsprechende Tastenkombination gedrückt)?

Einfach erneut auswählen und schon sind die Breakpoints wieder aktiv - so es das war, aber danach sieht es aus, denn dann sind die Breakpoint Symbole einfach so durchgestrichen wie in Deinem Bildschirmfoto.

Ah, vielen Dank, das wars ^^ - was für ne Erleichterung:)
 

mihe7

Top Contributor
Um das abzukürzen und nachdem eigentlich eh schon alles dasteht, helfe ich Dir mal direkt:

Vorab hast Du noch gar keinen Buchstaben und dem entsprechend eine Anzahl von 0. Jetzt fängt der Spaß an: Du schaust auf das Blatt und siehst ein A (1. Bild). Damit erhöht sich die Anzahl um 1, außerdem kennst Du damit auch den Buchstaben. Du weißt also, dass der Buchstabe einmal vorkommt. Du kannst aber noch nicht sagen, ob auf diesen Buchstaben nochmal der gleiche folgt.

Das weißt Du erst, wenn es entweder keinen Folgebuchstaben gibt oder sich der Folgebuchstabe vom aktuellen unterscheidet (an der Stelle geht es nicht darum, zu wissen, um welchen Folgebuchstaben es sich handelt, sondern nur darum, dass es ein anderer ist).

Ist der Folgebuchstabe der gleiche, kannst Du einfach weiter machen: der Folgebuchstabe wird zum aktuellen, Du zählst eins hoch, die Anzahl ist 2 (Bild 2). Das gleiche für Bild 3 und 4.

Nachdem Du also 4 As gezählt hast, stellst Du fest, dass es zwar einen Folgebuchstaben gibt, dieser aber sich von einem A unterscheidet. An dem Punkt kannst Du mit Sicherheit sagen, dass es 4 aufeinanderfolgende As sind. Zu diesem Zeitpunkt kennst Du aber den Folgebuchstaben noch nicht, so dass die Anzahl wieder auf 0 gesetzt wird und das Spiel beginnt von vorne.

Der Code enthält weniger Zeichen als die Erklärung :)
 

Zrebna

Bekanntes Mitglied
Vergiss den Code. Du sollst einfach überlegen, was Du mit dem Blatt Papier machen musst, wann Du zählst, was Du zählst und wann Du mit Sicherheit eine Aussage über die Anzahl aufeinanderfolgender Buchstaben treffen kannst.

Hey, bevor ich mir deine nächste Message angucke, erstmal noch hierzu, weil ich diese konzeputuelle Übung gut finde und mich genau sowas evtl. generell weiterbringen könnte:

Also gesprochen würde ich die Vorgehensweise so beschreiben:
Ich beginne mit dem Zählen nachdem ich den ersten Buchstaben gelesen habe (gehe von links nach rechts).
Ich höre mit dem Zählen auf, sobald ein anderer Buchstabe erscheint.
Die bis dato ermittelte Anzahl ist die Anzahl des gerade gezählten Buchstabens, und zwar bevor ein anderer Buchstabe erschienen ist - d.h. nur direkt aufeinanderfolgende gleiche Buchstaben werden pro Zählung gezählt.
 

Zrebna

Bekanntes Mitglied
Um das abzukürzen und nachdem eigentlich eh schon alles dasteht, helfe ich Dir mal direkt:

Vorab hast Du noch gar keinen Buchstaben und dem entsprechend eine Anzahl von 0. Jetzt fängt der Spaß an: Du schaust auf das Blatt und siehst ein A (1. Bild). Damit erhöht sich die Anzahl um 1, außerdem kennst Du damit auch den Buchstaben. Du weißt also, dass der Buchstabe einmal vorkommt. Du kannst aber noch nicht sagen, ob auf diesen Buchstaben nochmal der gleiche folgt.

Code-technisch müsste man daher in der äußeren Schleife auf jeden Fall das array betrachten, weil wir ja damit beginnen, dass wir eben von links nach rechts jedes Zeichen das Arrays betrachten.
Danach wird wohl counter direkt erhöht und das geht so lange, bis gegenwärtiger Buchstabe != folgender Buchstabe (also anderer Buchstabe oder Ende des Strings)?

Das weißt Du erst, wenn es entweder keinen Folgebuchstaben gibt oder sich der Folgebuchstabe vom aktuellen unterscheidet (an der Stelle geht es nicht darum, zu wissen, um welchen Folgebuchstaben es sich handelt, sondern nur darum, dass es ein anderer ist).

Ist der Folgebuchstabe der gleiche, kannst Du einfach weiter machen: der Folgebuchstabe wird zum aktuellen, Du zählst eins hoch, die Anzahl ist 2 (Bild 2). Das gleiche für Bild 3 und 4.

Nachdem Du also 4 As gezählt hast, stellst Du fest, dass es zwar einen Folgebuchstaben gibt, dieser aber sich von einem A unterscheidet. An dem Punkt kannst Du mit Sicherheit sagen, dass es 4 aufeinanderfolgende As sind. Zu diesem Zeitpunkt kennst Du aber den Folgebuchstaben noch nicht, so dass die Anzahl wieder auf 0 gesetzt wird und das Spiel beginnt von vorne.

Der Code enthält weniger Zeichen als die Erklärung :)

Hab grad versucht es zu coden, aber haut noch nicht ganz hin.
Muss für Heute weg....morgen gehts dann weiter - Danke schon mal soweit^^
 
Zuletzt bearbeitet von einem Moderator:

Zrebna

Bekanntes Mitglied
Es gibt nur eine Schleife...

Ah ok, dann ist wohl dieser Ansatz bzgl. deinen Lösungsüberlegungen komplett daneben?
(Ausgabe noch nicht exakt, das was ich will mit 4A1K1A1A1B, aber näher dran, als zuvor xD)



Java:
package ex1;

public class CharCounterPresentation {
    

    public static void main(String[] args) {
        String s = "AAAAKKAAB";
                
        char[] array = s.toCharArray();
        // System.out.println(array.length); == 9
        
        int i = 0;
        int j, counter;
        
        for( ; i < array.length; i++) {
            counter = 1;
            for(j = i; j < (array.length-i); j++) {
                if(array[i] != array[j+1]) {
                    i = j+1;
                    break;
                }
                counter++;   
            }
            System.out.printf("%d%c", counter, array[j]);       
        }       
    }         
}

Heute raucht bereits der Kopf... - ich versuche es morgen erneut mit deinem Hinweis, dass nur eine Schleife reicht und überlege dann dahingehend nochmals:)

Schon mal Danke soweit!^^
 

mihe7

Top Contributor
Du hast doch die Bilder gesehen: das "Deckblatt" wandert einfach von links nach rechts.
Code:
 AAAAKKBA
^ vor Beginn: kein Buchstabe bekannt; anzahl := 0

 AAAAKKBA
 ^ aktueller Buchstabe := A, Anzahl erhöhen (anzahl = 1)
   Nächster Buchstabe? Existiert ist gleich dem aktuellen, also weiter

 AAAAKKBA
  ^ aktueller Buchstabe := A, Anzahl erhöhen (anzahl = 2)
    Nächster Buchstabe? Existiert ist gleich dem aktuellen, also weiter
 AAAAKKBA
   ^ aktueller Buchstabe := A, Anzahl erhöhen (anzahl = 3)
     Nächster Buchstabe? Existiert ist gleich dem aktuellen, also weiter
 AAAAKKBA
    ^ aktueller Buchstabe := A, Anzahl erhöhen (anzahl = 4)
      Nächster Buchstabe? Existiert ist nicht gleich dem aktuellen, also:
      anzahl + aktuellen Buchstaben ausgeben (4A)
      anzahl auf 0 zurücksetzen und weiter
 AAAAKKBA
     ^ aktueller Buchstabe := K, Anzahl erhöhen (anzahl = 1)
     Nächster Buchstabe? Existiert ist gleich dem aktuellen, also weiter
 AAAAKKBA
      ^ aktueller Buchstabe := K, Anzahl erhöhen (anzahl = 2)
        Nächster Buchstabe? Existiert ist nicht gleich dem aktuellen, also:
        anzahl + aktuellen Buchstaben ausgeben (2K)
        anzahl auf 0 zurücksetzen und weiter
 AAAAKKBA
       ^ aktueller Buchstabe := B, Anzahl erhöhen (anzahl = 1)
         Nächster Buchstabe? Existiert ist nicht gleich dem aktuellen, also:
         anzahl + aktuellen Buchstaben ausgeben (1B)
         anzahl auf 0 zurücksetzen und weiter
 AAAAKKBA
        ^ aktueller Buchstabe := A, Anzahl erhöhen (anzahl = 1)
          Nächster Buchstabe? Existiert nicht, also:
          anzahl + aktuellen Buchstaben ausgeben (1A)
          anzahl auf 0 zurücksetzen und weiter (=> Schleife endet)
 

Zrebna

Bekanntes Mitglied
Ich habs zwar jetzt, aber glaube in meiner Lösung spiegeln sich nur teilweise deine runtergebrochnenen Überlegungen weiter:
Java:
package ex1;

public class CharCounterPresentation {
    

    public static void main(String[] args) {
        String s = "AAAAKKAAB";
                
        char[] array = s.toCharArray();
        // System.out.println(array.length); == 9
        
        int i;
        int counter = 1;
        
        for(i = 0 ; i < array.length-1; i++) { 
            if(array[i] != array[i+1]) {
                System.out.printf("%d%c", counter, array[i]);
                counter = 1;
                continue;
            }
            counter++;
        }
        System.out.printf("%d%c\n", counter, array[i]);
    }         
}

Wie hättest du es gelöst?

Lg,
Zrebna
 

mihe7

Top Contributor
Wie hättest du es gelöst?
Dein Ansatz ist grundsätzlich schon ok. Wenn Du nicht im Voraus zählst, dann kannst Du die doppelte Ausgabe einsparen:
Java:
int counter = 0; // vorab nix bekannt
for (int i = 0; i < array.length; i++) {
    char ch = array[i];
    counter++;
    if ((i+1) == array.length || array[i+1] != ch) { // Ausgabe muss erfolgen, wenn
                                                     // letztes Zeichen erreicht ist oder
                                                     // ein anderes Zeichen folgt
        System.out.printf("%d%c", counter, ch);
        counter = 0;
    }
}
 

Zrebna

Bekanntes Mitglied
Ah ok, so hast du das gelöst - nice^^

@OpenJDK:
?

Generell:
Was ich nicht verstehe ist, warum ich eine exception bei meinem Codesnippet erhalte, wenn ich die Abbruchbedingung bei der
for-Schleife nicht mit 'i < array.length-1' versehe, wie getan, sondern mit 'i < array.length' ?

Ich beginne den Index bei 0 und mein Array hat neun Zeichen.
Da sollte doch <Länge körrekt sein weil 0 bis <9 entspricht 0 bis 8, was 9 Iterationen sind - also die Anzahl der Elemente im array.
Wieso funktioniert es nur wenn ich 8 mal iterieren lasse?
 

mrBrown

Super-Moderator
Mitarbeiter

temi

Top Contributor
Was ich nicht verstehe ist, warum ich eine exception bei meinem Codesnippet erhalte, wenn ich die Abbruchbedingung bei der
for-Schleife nicht mit 'i < array.length-1' versehe, wie getan, sondern mit 'i < array.length' ?

Ich beginne den Index bei 0 und mein Array hat neun Zeichen.
Da sollte doch <Länge körrekt sein weil 0 bis <9 entspricht 0 bis 8, was 9 Iterationen sind - also die Anzahl der Elemente im array.
Wieso funktioniert es nur wenn ich 8 mal iterieren lasse?

Vermutlich greifst du in deinem Code irgendwo auf das i+1te Element zu und das liegt dann für i=8 außerhalb des Arrays.
 

mihe7

Top Contributor
@temi hat das natürlich gleich richtig erkannt:
Java:
for(i = 0 ; i < array.length-1; i++) { 
            if(array[i] != array[i+1]) {
Für i == 8 gilt array[i+1] == array[9] -> Exception
 

mrBrown

Super-Moderator
Mitarbeiter
@mrBrown Das zeigt mir wieder einmal: Immer genau lesen. ;)
Wo les ich denn was falsch?


OP sagt im Eingangspost, dass bei „AAAAKKAAB“ „4A2K2A1B“ rauskommen soll, aktuell aber „6A1B2K“ rauskommt - es sollen also nicht einfach alle Vorkommen gezählt werden, sondern nur aufeinanderfolgende Vorkommen, darauf bezog sich mein Zitat.
Für das von dir genannte „AAAAKKBA“ sollte also „4A2K1B1A“ rauskommen.

Du sagst in deinem Post genau das Gegenteil; dass nicht aufeinanderfolgende, sondern alle gezählt werden sollen - für „AAAAKKBA“ soll laut dir also „5A2K1B“ rauskommen.
Aber genau das macht ja schon der Code im Eröffnungspost.
 
K

kneitzel

Gast
Ich glaube er meinte sich selbst damit und nicht Dich... Daher alles gut. (Ansonsten hätte er auch bestimmt mehr erläutert....)
 

Neue Themen


Oben