我有一个多行字符串作为用户输入。我将字符串分解为ArrayList
bystr.split("\\s ")
并更改了某个特定单词(如果出现),现在我想将其中的单词ArrayList
与其中的替换单词合并,并仅以多行模式再次形成字符串。我不知道如何做到这一点。请帮忙。
问问题
172 次
1 回答
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();
}
于 2013-07-21T19:16:05.543 回答