Doppelte Buchstaben löschen - letztes Wort macht er nicht

JV_2010

Neues Mitglied
Hi,

dieser Code soll alle doppelt oder mehrfach hintereinander vorkommenden Chars löschen...funzt soweit gut. Wenn jedoch das letzte Wort zum beispiel hier "Tessst" hinten steht, macht er nicht das was er sollte. Vielleicht hat einer ein geschultes Auge und erkennt den Fehler sofort. Wäre Dankbar um jede Hilfe.

Code:
            //Es sollen alle doppelten Buchstaben aus dem String gelöscht werden
		
String stringWithDoubleChars = "Susanne und Hannnnes hatten grossen Spass in     Bottenbach. Sie wolllllten ins Kino doch Bottttenbach hatte keins! Tessst";
		
		StringBuilder myString = new StringBuilder(stringWithDoubleChars);
		int deletedChars = 0;
		
		for(int i=0; i<myString.length() - deletedChars; i++)
		{
			while (myString.charAt(i) == myString.charAt(i+1))
			{
				myString.deleteCharAt(i);	// Dann lösche das Zeichen das doppelt ist!					
				deletedChars++;	
			}
		}		
				
			
			String myStringWithoutDoubleChars = myString.toString();
			System.out.println("Ausgabe: " + myStringWithoutDoubleChars);
		}


Und das gibt die Konsole aus:

Code:
Ausgabe: Susane und Hanes haten grosen Spas in Botenbach. Sie wolten ins Kino doch Botenbach hate keins! Tessst

Wie man sieht machte er alle Wörter bis auf "Tessst" (im Prinzip alle wörter die doppelte buchstaben haben und ganz hintenstehen.)
 
Der Algorithmus macht so keinen Sinn. Richtiger Algorithmus:

Man erstellt einen neuen StringBuilder. Dann geht man den Ursprungsstring Buchstabenweise durch und kopiert den jeweiligen Buchstaben nur, wenn es nicht der gleiche ist, wie der vorhergehende.
 

Neue Themen


Zurück
Oben