Java:将List <Integer>转换为String

Mar*_*tin 34 java

我怎么转换List<Integer> to String?例如,如果我List<Integer>包含数字1 2和3,如何将其转换为String ="1,2,3"?我们将不胜感激.

JB *_*zet 36

番石榴:

String s = Joiner.on(',').join(integerList);
Run Code Online (Sandbox Code Playgroud)

  • Downvoter:为什么选择downvote?你不觉得上面比其他选项更优雅和可读吗? (3认同)
  • 我认为这个答案对这个问题有效。OP 没有明确说明他/她不想使用第三方库。我会补偿+1。 (2认同)

Yog*_*ngh 36

我想你可以简单地使用List.toString()如下:

List<Integer> intList = new ArrayList<Integer>();
intList.add(1);
intList.add(2);
intList.add(3);


String listString = intList.toString();
System.out.println(listString); //<- this prints [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)

如果你不想[]在字符串中,只需使用子字符串,例如:

   listString = listString.substring(1, listString.length()-1); 
   System.out.println(listString); //<- this prints 1, 2, 3
Run Code Online (Sandbox Code Playgroud)

请注意:List.toString()uses AbstractCollection#toString方法,将列表转换为String,如上所示


Hem*_*els 34

在vanilla Java 8(流)中,你可以做

// Given numberList is a List<Integer> of 1,2,3...

String numberString = numberList.stream().map(String::valueOf)
    .collect(Collectors.joining(","));

// numberString here is "1,2,3"
Run Code Online (Sandbox Code Playgroud)


kos*_*osa 8

一种方法是:

Iterate在列表中,将每个项目添加到StringBuffer(或)StringBuildertoString()在结尾处执行.

例:

StringBuilder strbul  = new StringBuilder();
     Iterator<Integer> iter = list.iterator();
     while(iter.hasNext())
     {
         strbul.append(iter.next());
        if(iter.hasNext()){
         strbul.append(",");
        }
     }
 strbul.toString();
Run Code Online (Sandbox Code Playgroud)

  • 自Java 8起list.stream()。map(String :: valueOf).collect(Collectors.joining(“,”)) (3认同)

Muf*_*Man 7

只是从流行的库(Apache Commons)添加另一个(许多)选项:

import org.apache.commons.lang3.StringUtils;

String joinedList = StringUtils.join(someList, ",");
Run Code Online (Sandbox Code Playgroud)

请参阅文档:https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html#join-java.lang.Iterable-java.lang.String-


来自其他人评论的一个优雅的选择(从 Java 8 开始):

String joinedList = someList.stream().map(String::valueOf).collect(Collectors.joining(","));
Run Code Online (Sandbox Code Playgroud)