Java String nach Zeichen durchsuchen und austauschen?
Hallo,
ich suche nach eine Möglichkeit in Java ein String nach einer Bestimmten Zeichenkette zu durchsuchen.
z.B. Möchte ich im String B241132113
alle doppelten Einsen durch einzelne ersetzen.
Nun habe ich schon überlegt es mit einem StringBuffer zu machen. Also mit „IndexOf“ und „Replace“. Aber da könnte ich mir ja auch bloß immer den Index der ersten Folge auslesen lassen und dann darauf überschreiben. Dann würden ja die hinteren Einsen in dem Beispiel aber auch übersehen werden.
hat jemand noch eine Anregung bzw. einen Vorschlag?
Es kann natürlich auch vorkommen, dass mehrerer doppelte Zeichen ersetzt werden. Also z.B. 341156622
2 Antworten
Den String Zeichen für Zeichen durchgehen, und schauen, ob das Zeichen rechs daneben das selbe ist, und wenn ja, dann entfernen.
String str = „Dein String 1102617322“
for(int i = 0; i < str.length()-1; i++) {
if(str.charAt(i) == str.charAt(i+1)){
str = str.subString(0,i) + str.subString(i+1);
i--;
}
}
Ach mensch na klar. Das ich da nicht selbs drauf gekommen bin.. Danke für die Hilfe
Naja effizient ist was anderes:
2 Möglichkeiten:
1. replaceAll() für alle Zahlen von 0-9
2. durch die Zahlenfolge durchiterien und prüfen ob i und i+1 gleich sind. dann durch leeren String ersetzen.
Eventuell kann man es effizeinter lösen. Woher kommen die Zahlen?