Hi,
ich möchte gerne einen innerhalb eines Strings an eine bestimmte Stelle etwas einfügen.
Der zu verändernde String sieht so aus:
umbruch|test|test|test|test|test|test|test|test|test|test|umbruch|test|test|test|test|test|test|test|test|test|test|umbruch|test|test|test|test|test|test|test|test|test|test|
Jetzt möchte ich gerne das nach jedem zehnten | ein Umbruch geschieht so das ich am Ende so etwas herausbekomme:
umbruch|test|test|test|test|test|test|test|test|test|test|
umbruch|test|test|test|test|test|test|test|test|test|test|
umbruch|test|test|test|test|test|test|test|test|test|test|
Mein Funktion sieht so aus: Dazu ist vielleicht noch zu sagen das der String vorher durch ein encode der Klasse URLEncoder gejagt wird. Die | Zeichen werden also als "%7C" im String dargestellt.
Ich kann leider auch nach stundenlanger Suche die Ursache meines Problems nicht finden, dass es nur in der ersten Zeile klappt. Alle weiteren Zeilen werden am falschen Ort umgebrochen oder gar nicht.
Seht ihr den Fehler?
ich möchte gerne einen innerhalb eines Strings an eine bestimmte Stelle etwas einfügen.
Der zu verändernde String sieht so aus:
umbruch|test|test|test|test|test|test|test|test|test|test|umbruch|test|test|test|test|test|test|test|test|test|test|umbruch|test|test|test|test|test|test|test|test|test|test|
Jetzt möchte ich gerne das nach jedem zehnten | ein Umbruch geschieht so das ich am Ende so etwas herausbekomme:
umbruch|test|test|test|test|test|test|test|test|test|test|
umbruch|test|test|test|test|test|test|test|test|test|test|
umbruch|test|test|test|test|test|test|test|test|test|test|
Mein Funktion sieht so aus: Dazu ist vielleicht noch zu sagen das der String vorher durch ein encode der Klasse URLEncoder gejagt wird. Die | Zeichen werden also als "%7C" im String dargestellt.
Code:
public String addBreak(String s) {
int index = 0;
String startString = "";
String endString = "";
startString = s;
String midString = "";
for(int i=0;i<s.length();i++) {
if(i==0) {
index = s.indexOf("%7C", index+3);
}
else {
index = startString.indexOf("%7C", index+3);
}
if(index == -1 ) {
return startString;
}
if(i%10==0 && i>0) {
endString = startString.substring(index+3);
midString = startString.substring(index,index+3);
startString = startString.substring(0,index);
midString = midString.replaceFirst("%7C", "%7C%0D%0A");
startString = startString + midString + endString;
}
}
return startString;
}
}
Ich kann leider auch nach stundenlanger Suche die Ursache meines Problems nicht finden, dass es nur in der ersten Zeile klappt. Alle weiteren Zeilen werden am falschen Ort umgebrochen oder gar nicht.
Seht ihr den Fehler?