54

どうすれば変換できList<Integer> to Stringますか?たとえば、List<Integer>1、2、3の数字が含まれている場合、String = "1,2,3"に変換するにはどうすればよいですか?すべての助けをいただければ幸いです。

4

5 に答える 5

53

私はあなたが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]

文字列を使用したくない場合は[]、サブ文字列を使用してください。例:

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

注意:上記のようにリストを文字列に変換するメソッドをList.toString()使用しますAbstractCollection#toString

于 2012-11-02T16:06:29.113 に答える
47

グアバと:

String s = Joiner.on(',').join(integerList);
于 2012-11-02T15:55:43.953 に答える
40

バニラJava8(ストリーム)では、次のことができます

// 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"
于 2019-09-04T08:33:43.503 に答える
11

1つの方法は次のとおりです。

IterateStringBufferリストの上に、各項目を(または)に追加StringBuildertoString()、最後に実行します。

例:

StringBuilder strbul  = new StringBuilder();
     Iterator<Integer> iter = list.iterator();
     while(iter.hasNext())
     {
         strbul.append(iter.next());
        if(iter.hasNext()){
         strbul.append(",");
        }
     }
 strbul.toString();
于 2012-11-02T15:52:43.273 に答える
4

人気のあるライブラリ(Apache Commons)から別の(多くの)オプションを追加するだけです:

import org.apache.commons.lang3.StringUtils;

String joinedList = StringUtils.join(someList, ",");

ドキュメントを参照してください: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(","));
于 2019-06-07T15:48:23.217 に答える