Hier ein kleiner Beispielcode um einen Zeilenumbruch oder eine Tabulator-Einrückung in Java zu entfernen:
Etwas unsaubere Lösung mit replace:
1 2 3 4 5 6 7 8 9 10 11 | public String formatText(String strGivenText) { // Tabulator entfernen String strNewText = strGivenText.replace('\t', '\0'); // Zeilenumbruch entfernen (Unix) strNewText = strNewText.replace('\n', '\0'); // Zeilenumbruch/Wagenrücklauf entfernen (Windows) strNewText = strNewText.replace('\r', '\0'); return strNewText; } |
Elegante Lösung mit StringBuffer:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | public String formatText(String strGivenText) { StringBuffer sbFormattedText = new StringBuffer(strGivenText); for(int i=0; i<sbFormattedText.length(); i++) { if(sbFormattedText.charAt(i) == '\n') sbFormattedText.deleteCharAt(i); if(sbFormattedText.charAt(i) == '\r') sbFormattedText.deleteCharAt(i); if(sbFormattedText.charAt(i) == '\t') sbFormattedText.deleteCharAt(i); } return sbFormattedText.toString(); } |
Vielen Dank!
Die elegante Version funktioniert so noch besser:
public String formatText(String strGivenText)
{
StringBuffer sbFormattedText = new StringBuffer(strGivenText);
boolean found = false;
for(int i=0; i<sbFormattedText.length(); i++)
{
found = false;
if(sbFormattedText.charAt(i) == '\n')
{sbFormattedText.deleteCharAt(i); found = true;}
if(sbFormattedText.charAt(i) == '\r')
{sbFormattedText.deleteCharAt(i); found = true;}
if(sbFormattedText.charAt(i) == '\t')
{sbFormattedText.deleteCharAt(i); found = true;}
if(found) i –;
}
return sbFormattedText.toString();
}
ohne die Zurücksetzung von i werden nämlich keine aufeinanderfolgenden Zeilenumbrüche detektiert.
Vielen Dank für diesen wertvollen Beitrag! 🙂
Hallo !
Leider funktioniert diese Lösung nicht immer. Falls wir gleich am Anfang ein Zeilenumbruch haben, wird i = -1, was zu einem Fehler führt.
Mein Vorschlag wäre :
StringBuffer text = new StringBuffer(fromValue);
int i=0;
boolean addI = true;
while (i < text.length()) {
if (text.charAt(i) == '\n') {
text.deleteCharAt(i);
addI = false;
}
if (text.charAt(i) == '\r') {
text.deleteCharAt(i);
addI = false;
}
if (text.charAt(i) == '\t') {
text.deleteCharAt(i);
addI = false;
}
if (addI) {
i++;
}
addI = true;
}
return text.toString();