Mam ten ciąg wejściowy (zawierajacego zaczepy, spacji linebreaks):Usuń wszystkie spacje z łańcucha, ale zawsze o jeden przełamane
That is a test.
seems to work pretty good? working.
Another test again.
[Edit]: I powinien dostarczyły ciąg dla lepiej testowanie jak stackoverflow usuwa wszystkie znaki specjalne (zakładki, ...)
String testContent = "\n\t\n\t\t\t\n\t\t\tDas ist ein Test.\t\t\t \n\tsoweit scheint das \t\tganze zu? funktionieren.\n\n\n\n\t\t\n\t\t\n\t\t\t \n\t\t\t \n \t\t\t\n \tNoch ein Test.\n \t\n \t\n \t";
I chcę, aby osiągnąć ten stan:
That is a test.
seems to work pretty good? working.
Another test again.
String expectedOutput = "Das ist ein Test.\nsoweit scheint das ganze zu? funktionieren.\nNoch ein Test.\n";
Jakieś pomysły? Czy można to osiągnąć za pomocą wyrażeń regularnych?
replaceAll("\\s+", " ")
NIE jest tym, czego szukam. Jeśli to wyrażenie zachowałoby dokładnie 1 linię nowej istniejącej, byłoby idealnie.
Próbowałem tego, ale wydaje mi suboptimal ...:
BufferedReader bufReader = new BufferedReader(new StringReader(testContent));
String line = null;
StringBuilder newString = new StringBuilder();
while ((line = bufReader.readLine()) != null) {
String temp = line.replaceAll("\\s+", " ");
if (!temp.trim().equals("")) {
newString.append(temp.trim());
newString.append("\n");
}
}
Myślę, że musisz zrobić jakąś logikę dla tego .. musisz szukać znaku spoza tablicy po 1 spacji. i po znaku nowej linii szukaj znaku spacji. –
Jaka jest logika? Przycinanie kolejnych białych znaków do 1 spacji? –
@BlackMaggie tak, podsumowuje to myślę, że ... – friesoft