Buchstaben aus String einzeln Zählen

j0k3r87

Mitglied
Hallo liebe Community,

ich habe ein Programm geschrieben, welches mir einen String, das es über die Konsole eingegeben bekommt, kompilieren soll. So soll z.B. aus

zzzzgggaakkkkkkkklll später z4g3aak8l3 werden. Sobald also ein Buchstabe mehr als zweimal hintereinander vorkommt soll nur der Buchstabe und dnanch die Häufigkeit ausgegeben werden. Soweit bin ich bisher:

Code:
class Zeichen{
     public static void main(String[] args){
    	 int i = 0;
    	 String a = args[i];
    	 int counter = 1;
    	 System.out.print(a.charAt(0));
    	 for(int c = 1 ; c < a.length (); c++){
    		
    		 	if(a.charAt(c) == a.charAt(c-1) && c > 3)
    		 	{
    		 		counter++;
    		 		
    		 	}
    		 	else 
    		 	{
    		 		counter = 1;
    		 	}
    		 	
    		 	System.out.print(a.charAt(c) +""+ counter +" ");    		 	
    	 	} 
     	}	 
}

Allerdings bekomme ich dort folgende Ausgabe:

zz1 z1 z1 g1 g2 g3 a1 a2 k1 k2 k3 k4 k5 k6 k7 k8 l1 l2 l3

Hoffe ihr könnt mir helfen.
 

faetzminator

Gesperrter Benutzer
Du darfst die Ausgabe sicherlich erst im else-Case machen, da du erst nach einem nächsten Zeichen weisst, ob es das gleiche ist, oder nicht. Problematisch wirds natürlich auch für die letzten Zeichen im String, da dort ggf nie der else-Zweig durchlaufen wird.
 
T

Trolllllll

Gast
Ja Wahrscheinlich, aber in letzter Zeit sind hier ja fast nur noch Hausaufgaben ;-)

Für was ist das gut
Code:
&& c > 3
? das sorgt für dein zz am anfang, dann wie schon von faetzminator geschrieben ;-)
 

j0k3r87

Mitglied
ihr habt recht, das c > 3 war sinnlos, habe es entfernt ;-) . allerdings verändert dies nichts an meiner ausgabe. und wenn ich die ausgabe im else case mache bekomme ich folgendes : zg1 a1 k1 l1
 
T

Trolllllll

Gast
du hast da wahrscheinlich jetzt stehen
Java:
else {
  counter = 1;
  System.out.print(a.charAt(c) +""+ counter +" ");
}
was dafür sorgt, das du den neuen buchstaben (deswegen als erstes das g mit dem resetteten counter ausgibst, deswegen 1, mach mal
Java:
else {
  System.out.print(a.charAt(c-1) +""+ counter +" ");
  counter = 1;
}
 
B

bone2

Gast
alle syso ausgaben dürften doch erst nach der schleife kommen und das Ergbnis präsentieren
 
T

Trolllllll

Gast
Stimmt, diese Ausgabe ist Sinnlos
Java:
System.out.print(a.charAt(0));
 

j0k3r87

Mitglied
vielen dank erstmal für eure hilfe :). es funktioniert soweit, nur das noch der counter nach jeder zahl ausgegeben wird. allerdings soll es ja so zum ende aussehen:

z4g3aak8l3
 
B

bone2

Gast
vielen dank erstmal für eure hilfe :). es funktioniert soweit, nur das noch der counter nach jeder zahl ausgegeben wird. allerdings soll es ja so zum ende aussehen:

z4g3aak8l3

wie gesagt, ausgabe nach der schleife oder wenn ein neuer buchstabe kommt den alten ausgeben


uh umständlich.


hier mal ne lösung, null lerneffekt aber gratis einsen für alle :)
Java:
    public static void main(String[] args) {
        shortenString("rrrruuuunnnllllleeeeeenggttttthhhhhhhhhencodiiiiiinggggg");
    }


    private static void shortenString(String string) {
        char[] chars = string.toCharArray();
        StringBuilder result = new StringBuilder();
        int equalCharCounter = 1;

        for (int i = 1; i < chars.length; i++) {
            if (chars[i-1] == chars[i]) {
                equalCharCounter++;
            }
            else {
                addChar(i, equalCharCounter, chars, result);
                equalCharCounter = 1;
            }
        }

        addChar(chars.length, equalCharCounter, chars, result);
        System.out.println("shortened: " + result.toString());
    }


    private static void addChar(int index, int count, char[] chars, StringBuilder result) {
        result.append(chars[index-1]);

        if (count == 2) {
            result.append(chars[index-1]);
        }
        else if (count > 2){
            result.append(count);
        }
    }
 
T

Trolllllll

Gast
Wie gesagt, die Ausgabe in den Else Teil, das ist wenn ein neuer Buchstabe kommt, dann müsste die Ausgabe genau so aussehen
Code:
z4g3aak8l3
 

X5-599

Top Contributor
Nochmal eine angepasste Version, die die Anforderung vom OP erfüllt. Hoffe ich :)

Java:
public static void main(String[] args) throws ParseException
	{
		int i = 0;
		String a = args[i];
	   	int counter = 1;
	   	for(int c = 1 ; c < a.length (); c++)
	   	{
	   		if(a.charAt(c) == a.charAt(c-1))
		 	{
		 		counter++;
		 	}
		 	else 
		 	{
		 		if(counter > 2)
		 			System.out.print(a.charAt(c-1) +""+ counter);
		 		else if(counter == 2)
		 			System.out.print(a.charAt(c-1)+""+a.charAt(c-1));
		 		else
		 			System.out.print(a.charAt(c-1));
		 		counter = 1;
		 	}
	   		
	   		if(c == a.length()-1)
	   		{
	   			if(counter > 2)
		 			System.out.print(a.charAt(c) +""+ counter);
		 		else if(counter == 2)
		 			System.out.print(a.charAt(c)+""+a.charAt(c));
		 		else
		 			System.out.print(a.charAt(c));
	   		}
	   			
	   	}
	}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
BeginnerJava String mit vorgegebener Länge und Buchstaben erzeugen/ mit Leerstellen Java Basics - Anfänger-Themen 8
C In String, Buchstaben ersetzen durch andere Buchstaben Java Basics - Anfänger-Themen 26
R Mehrere Buchstaben aus einem String entfernen Java Basics - Anfänger-Themen 1
F Java Programm, das kleine Buchstaben in einem String zählen soll und bei großen Buchstaben oder Sonderzeichen abbrechen soll. Java Basics - Anfänger-Themen 5
J Verschieben von Buchstaben in einem String um vorgegebene Anzahl von Zeichen innerhalb eines weiteren String Java Basics - Anfänger-Themen 12
F Buchstaben in einem String vertauschen (Ohne replace) Java Basics - Anfänger-Themen 10
H Anzahl verschiedener Buchstaben im String Java Basics - Anfänger-Themen 41
K String buchstaben auslesen Java Basics - Anfänger-Themen 9
Z Ersten Buchstaben eines Elements eines String-Arrays auslesen Java Basics - Anfänger-Themen 5
Bregedur String beim nächstem groß geschriebenen Buchstaben trennen Java Basics - Anfänger-Themen 1
S String ab dem Wechsel Buchstaben zu Zahlen splitten Java Basics - Anfänger-Themen 14
M String überprüfen ob nur Buchstaben enthalten sind? Java Basics - Anfänger-Themen 10
X String einzelne Buchstaben ersetzen Java Basics - Anfänger-Themen 4
M Erste Schritte zwei Buchstaben die im String enthalten sind ausgeben Java Basics - Anfänger-Themen 21
S Buchstaben/Wörter im String zählen Java Basics - Anfänger-Themen 6
M String (mit Buchstaben) zu Int Java Basics - Anfänger-Themen 6
H String zerlegen in einzelne Buchstaben (char)?? Java Basics - Anfänger-Themen 7
J Anzahl der Buchstaben in einem String Java Basics - Anfänger-Themen 12
S String Elemente bzw. Buchstaben miteinander vertauschen? Java Basics - Anfänger-Themen 6
V Anzahl eines Buchstaben in einem String zählen Java Basics - Anfänger-Themen 7
T Buchstaben an bestimmter Stelle aus String lesen Java Basics - Anfänger-Themen 5
A eingelesene String in buchstaben teilen Java Basics - Anfänger-Themen 9
A Beliebiger String --> Buchstaben und Zahlen Java Basics - Anfänger-Themen 4
C bestimmte Buchstaben in einem String ändern Java Basics - Anfänger-Themen 5
I Prüfen, ob String Buchstaben enthält Java Basics - Anfänger-Themen 3
C X. Buchstaben aus String auslesen Java Basics - Anfänger-Themen 3
G String buchstaben in Zahlen umwandeln Java Basics - Anfänger-Themen 5
T den 1. Buchstaben im String -> Großbuchstabe? Java Basics - Anfänger-Themen 4
J Buchstaben vergleichen (String) Java Basics - Anfänger-Themen 8
R Bestimmten Buchstaben im String zählen Java Basics - Anfänger-Themen 9
S Zugriff auf einzelne Buchstaben eines String Java Basics - Anfänger-Themen 16
F Zahl aus String (Buchstaben und Zahl) extrahieren Java Basics - Anfänger-Themen 17
R Buchstaben aus String herausfiltern Java Basics - Anfänger-Themen 18
D ersetzen eines Buchstaben durch mehrere in String Java Basics - Anfänger-Themen 8
D String lesen und bei bestimmtem Buchstaben stoppen Java Basics - Anfänger-Themen 3
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
L Buchstaben entfernen zipZap Java Basics - Anfänger-Themen 8
S Buchstaben Programmierung Bedeutung Java Basics - Anfänger-Themen 4
H Buchstaben zählen Java Basics - Anfänger-Themen 9
Tom/S KeyCode zu Buchstaben Java Basics - Anfänger-Themen 0
C ArrayList sortieren nach bestimmten Buchstaben in den Wörtern Java Basics - Anfänger-Themen 13
Q Besitzen zwei Strings identische Buchstaben, nur in anderer Reihenfolge? Java Basics - Anfänger-Themen 10
J Buchstabenhäufigkeit mit Array und Ausgabe des häufigsten Buchstaben Java Basics - Anfänger-Themen 25
J Buchstaben aus textArea extrahieren Java Basics - Anfänger-Themen 4
S Buchstaben in Großbuchstaben (Strings) Java Basics - Anfänger-Themen 5
O FilterStream häufigkeit der Buchstaben Java Basics - Anfänger-Themen 43
A Erste Schritte Buchstaben im Array suchen Java Basics - Anfänger-Themen 8
K Probleme beim Programm schreiben - Lesen von Dateiinhalten -zaehlen von Wörtern/ Buchstaben Java Basics - Anfänger-Themen 4
J Für jeden Buchstaben eine Zahl Java Basics - Anfänger-Themen 1
B Wie kann ich die Buchstaben sortieren nach der Höhe der Zahlen Java Basics - Anfänger-Themen 14
x-tshainge Zahlen Buchstaben zuordnen Java Basics - Anfänger-Themen 4
T Datentypen char als Buchstaben statt als Zahl ausgeben Java Basics - Anfänger-Themen 4
M replace Methode für Buchstaben Java Basics - Anfänger-Themen 29
L Feld mit beliebiger Anzahl von Buchstaben füllen... Java Basics - Anfänger-Themen 5
J Methoden Eingabe Methode nur Buchstaben Java Basics - Anfänger-Themen 4
I Hilfe beim löschen von Buchstaben. Java Basics - Anfänger-Themen 1
I Hilfe beim löschen schon Buchstaben. Java Basics - Anfänger-Themen 4
DestinatioN Problem beim splitten eines Satzes in Wörter und die Wörter in Buchstaben Java Basics - Anfänger-Themen 2
V char Eingabe aber nur für Buchstaben Java Basics - Anfänger-Themen 4
J Zufällige Buchstaben Java Basics - Anfänger-Themen 45
C Klassen Positionszähler auf Buchstaben setzen Java Basics - Anfänger-Themen 14
D Input/Output Buchstaben als bestimmte Zahl erkennen Java Basics - Anfänger-Themen 4
S Input/Output Buchstaben in Eingabe finden und ausgeben Java Basics - Anfänger-Themen 5
R [Erledigt]Fehler beim löschen von einzelnen Buchstaben aus StringBuilder Java Basics - Anfänger-Themen 1
E Input/Output Konsole erkennt meinen Buchstaben nicht Java Basics - Anfänger-Themen 12
F Häufigkeit von Buchstaben Java Basics - Anfänger-Themen 7
L Java Strings Buchstaben vertauschen Java Basics - Anfänger-Themen 4
G Erste Schritte Einen Array absuchen und Buchstaben zählen Java Basics - Anfänger-Themen 17
I Programm, welches eine Textzeile einliest und alle darin enthaltenen Buchstaben umwandelt Java Basics - Anfänger-Themen 3
A Erste Schritte Buchstaben in zahlen umwandeln Java Basics - Anfänger-Themen 4
S Groß bzw. Klein Buchstaben umwandeln (gemischt) Java Basics - Anfänger-Themen 1
S Einzelne Buchstaben aus Jtextfield in array Java Basics - Anfänger-Themen 2
A OOP Buchstaben mit ASCII Werten darstellen Java Basics - Anfänger-Themen 1
E Buchstaben verhindern / Try & Catch Block Java Basics - Anfänger-Themen 3
B Zahlen und Buchstaben in cmd eingeben Java Basics - Anfänger-Themen 5
S nur Buchstaben in JTextField Java Basics - Anfänger-Themen 3
A Erste Schritte Datei einlesen und Buchstaben zählen Java Basics - Anfänger-Themen 13
V Zufallsgenerator für Buchstaben Java Basics - Anfänger-Themen 22
A Erste Schritte konsoleneingabe von Buchstaben Java Basics - Anfänger-Themen 3
M Von File lesen Buchstaben lesen und zählen - scheitert an der Eingabe Java Basics - Anfänger-Themen 4
K Methoden Kontrollstruktur versagt bei Buchstaben... Java Basics - Anfänger-Themen 6
E Buchstaben nach Größe vergleichen Java Basics - Anfänger-Themen 4
M Benennung nach Buchstaben Java Basics - Anfänger-Themen 18
J Programm zum Buchstaben austauschen, logikproblem Java Basics - Anfänger-Themen 2
T keine buchstaben!nur zahlen eingabe möglich Java Basics - Anfänger-Themen 48
P toUpperCase() - Buchstaben die ersetzt werden als Großbuchstaben ausgeben Java Basics - Anfänger-Themen 5
R Regexp nur Buchstaben und Ziffener beliebig oft Java Basics - Anfänger-Themen 3
R buchstaben einlesen - fehlermeldung schreiben? Java Basics - Anfänger-Themen 9
D Buchstaben den jeweiligen Zahlen hinzufügen mit einer if. Java Basics - Anfänger-Themen 6
F Datentypen Zufällige Buchstaben vertauschen Java Basics - Anfänger-Themen 3
K Zahlen und buchstaben gemeinsam in ein array? Java Basics - Anfänger-Themen 17
F Leerzeichen zwischen jeden Buchstaben eines Strings einfügen Java Basics - Anfänger-Themen 16
J Buchstaben zählen Java Basics - Anfänger-Themen 17
R buchstaben zählen Java Basics - Anfänger-Themen 8
R In einem Palindrom 2 Buchstaben vergleichen Java Basics - Anfänger-Themen 16
P Buchstaben: Haeufigkeitstabelle Java Basics - Anfänger-Themen 9
T JTextField max. 8 Zeichen, nur Buchstaben Java Basics - Anfänger-Themen 8
M jeden 2ten Buchstaben aus array Java Basics - Anfänger-Themen 6
C ASCII Codes in Buchstaben umwandeln Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben