我有一个多行字符串作为用户输入。我把字符串打成ArrayList
str.split("\\s ")
并更改了一个特定的单词,如果它发生了,现在我想合并ArrayList
中的单词和替换后的单词再次形成字符串仅限多行模式。我没有得到如何做到这一点。请帮忙。
答案 0 :(得分:4)
仅使用标准Java(假设您的ArrayList称为words
)
StringBuilder sb = new StringBuilder();
for (String current : words)
sb.append(current).append(" ");
String s = sb.toString().trim();
如果你有Guava库,你可以使用Joiner:
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();
}