将arraylist转换为字符串

时间:2013-07-21 19:12:45

标签: java string arraylist

我有一个多行字符串作为用户输入。我把字符串打成ArrayList str.split("\\s ")并更改了一个特定的单词,如果它发生了,现在我想合并ArrayList中的单词和替换后的单词再次形成字符串仅限多行模式。我没有得到如何做到这一点。请帮忙。

1 个答案:

答案 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();
}