У меня есть этот входной строки (с указанной вкладки, пробелы, переносы строк):Удалить все пробелы из строки, но сохранить ОДНУ строку
That is a test.
seems to work pretty good? working.
Another test again.
[Изменить]: Я должен был обеспечить строку для лучше тестирование как StackOverflow удаляет все специальные символы (вкладки, ...)
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";
И я хочу, чтобы достичь этого состояния:
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";
Любые идеи? Можно ли это сделать с помощью регулярных выражений?
replaceAll("\\s+", " ")
НЕ ТО, что я ищу. Если это регулярное выражение сохранит ровно 1 новую строку существующих, было бы идеально.
Я попробовал это, но это, кажется неоптимальным мне ...:
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");
}
}
Я думаю, что вы должны сделать некоторую логику для этого. Вам нужно искать символ небелого пробела после 1 пробела. и поиск символа без пробела после новой строки. –
Какая логика вы хотите? Обрезание последовательных пробелов до 1 пробела? –
@BlackMaggie да, что суммирует его, я думаю .. – friesoft