我有一个字符串数组列表(数组列表中的每个单独元素只是一个没有空格的单词),我想取每个元素并将每个下一个单词附加到字符串的末尾。
所以说数组列表有
element 0 = "hello"
element 1 = "world,"
element 2 = "how"
element 3 = "are"
element 4 = "you?"
我想创建一个名为句子的字符串,其中包含“hello world,你好吗?”
答案 0 :(得分: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"
还添加了 StringJoiner
:
StringJoiner joiner = new StringJoiner(",");
joiner.add("foo");
joiner.add("bar");
joiner.add("baz");
String joined = joiner.toString(); // "foo,bar,baz"
另外,它是无关紧要的,我很欣赏。我的意思是,如果StringJoiner
遇到null
中的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());
}
答案 1 :(得分:12)
使用StringUtils来解决这个问题。
e.g。 Apache Commons Lang提供了连接方法。
StringUtils.join(myList,","))
它会遍历你的数组或字符串列表并将它们连接起来,使用第二个参数作为分隔符。请记住 - 总有一个图书馆可以让事情变得简单。
答案 2 :(得分:10)
与评论中建议的一样,您可以使用StringBuilder
:
StringBuilder listString = new StringBuilder();
for (String s : list)
listString.append(s+" ");
答案 3 :(得分:0)
嗯,循环标准应该有效:
String toPrint = "";
for(int i=0; i<list.size(); i++){
toPrint += list.get(i)+" ";
}
System.out.println(toPrint);
希望有所帮助!
答案 4 :(得分:0)
最简单的方法:
String ret = "";
for (int i = 0; i < array.size(); i++) {
ret += array.get(i) + " ";
}
但是如果你的数组很长,字符串连接的性能很差。你应该使用StringBuilder类。
答案 5 :(得分:0)
Java 8
final String concatString= List.stream()
.collect(Collectors.joining(" "));
答案 6 :(得分:-1)
这是一个简单的方法
String value = TextUtils.join(“”,sample);
样本是arraylist