У меня есть строка с несколькими строками, которая берется как пользовательский ввод. Я сломал строку в ArrayList
на str.split("\\s ")
и изменил определенное слово, если это произошло, теперь я хочу объединить слова в ArrayList
с замещенным в нем словом и снова сформировать строку только в шаблоне с несколькими строками. Я не понимаю, как это сделать. Пожалуйста помоги.Преобразование arraylist в строку
-1
A
ответ
4
Используя только стандартный Java (предполагается, что ваш ArrayList называется words
)
StringBuilder sb = new StringBuilder();
for (String current : words)
sb.append(current).append(" ");
String s = sb.toString().trim();
Если у вас есть Guava библиотеку, которую можно использовать Столяр:
String s = Joiner.on(" ").join(words)
Оба они будут работать, даже если тип от words
до String[]
.
Если вы хотите сохранить структуру строки, я предлагаю следующий подход: сначала разбить входную строку на строки, используя .split("\n")
. Затем разделите каждую строку на слова, используя .split("\\s")
. Вот как должен выглядеть код:
public String convert(String input, String wordToReplace, String replacement) {
StringBuilder result = new StringBuilder();
String[] lines = input.split("\n");
for (String line : lines) {
boolean isFirst = true;
for (String current : line.split("\\s")) {
if (!isFirst)
result.append(" ");
isFirst = false;
if (current.equals(wordToReplace))
current = replacement;
result.append(current);
}
result.append("\n");
}
return result.toString().trim();
}
+0
Я предполагаю, что проблема заключается в конкатенации поддерживаемых строк. – Ankit
что вы пробовали, пост здесь .... –
Для лучшей помощи раньше, опубликовать [SSCCE] (http://sscce.org/). –
Итак, вы спрашиваете, как конкатенировать строки? – SLaks