字符串的ArrayList为一个字符串

use*_*239 12 java string arraylist

我有一个字符串的数组列表(数组列表中的每个单独的元素只是一个没有空格的单词),我想取每个元素并将每个下一个单词附加到字符串的末尾.

所以说数组列表有

    element 0 = "hello"
    element 1 = "world,"
    element 2 = "how"
    element 3 = "are"
    element 4 = "you?"
Run Code Online (Sandbox Code Playgroud)

我想创建一个名为句子的字符串,其中包含"hello world,你好吗?"

Cug*_*uga 27

从Java 8开始,这已添加到标准Java API中:

String.join() 方法:

String joined = String.join("/", "2014", "10", "28" ); // "2014/10/28"

List<String> list = Arrays.asList("foo", "bar", "baz");
joined = String.join(";", list); // "foo;bar;baz"
Run Code Online (Sandbox Code Playgroud)

StringJoiner 还添加了:

StringJoiner joiner = new StringJoiner(",");
joiner.add("foo");
joiner.add("bar");
joiner.add("baz");
String joined = joiner.toString(); // "foo,bar,baz"
Run Code Online (Sandbox Code Playgroud)

另外,它是无关紧要的,我很欣赏.通过这个,我的意思是如果StringJoiner遇到nulla List,它不会抛出NPE:

@Test
public void showNullInStringJoiner() {
    StringJoiner joinedErrors = new StringJoiner("|");
    List<String> errorList = Arrays.asList("asdf", "bdfs", null, "das");
    for (String desc : errorList) {
        joinedErrors.add(desc);
    }

    assertEquals("asdf|bdfs|null|das", joinedErrors.toString());
}
Run Code Online (Sandbox Code Playgroud)


Goo*_*oot 12

使用StringUtils来解决这个问题.

例如,Apache Commons Lang提供了连接方法.

StringUtils.join(myList,","))
Run Code Online (Sandbox Code Playgroud)

它将遍历您的数组或字符串列表,并使用第二个参数作为分隔符将它们连接起来.请记住 - 总有一个图书馆可以让事情变得简单.


dre*_*ash 11

与评论中建议的一样,您可以使用以下方法StringBuilder:

StringBuilder listString = new StringBuilder();

for (String s : list)
     listString.append(s+" ");
Run Code Online (Sandbox Code Playgroud)


小智 1

好吧,标准的 for 循环应该可以工作:

String toPrint = "";
for(int i=0; i<list.size(); i++){
  toPrint += list.get(i)+" ";
}
System.out.println(toPrint);
Run Code Online (Sandbox Code Playgroud)

希望有帮助!