我该如何将List<Integer>
转换为字符串?例如,如果我的List<Integer>
包含数字1、2和3,如何将其转换为字符串="1,2,3"? 感谢您的任何帮助。
我该如何将List<Integer>
转换为字符串?例如,如果我的List<Integer>
包含数字1、2和3,如何将其转换为字符串="1,2,3"? 感谢您的任何帮助。
在纯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"
我认为您可以简单地使用如下的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
方法,该方法将列表转换为如上所示的字符串。使用Guava:
String s = Joiner.on(',').join(integerList);
StringBuffer
(或)StringBuilder
中,并在结尾处使用toString()
。StringBuilder strbul = new StringBuilder();
Iterator<Integer> iter = list.iterator();
while(iter.hasNext())
{
strbul.append(iter.next());
if(iter.hasNext()){
strbul.append(",");
}
}
strbul.toString();
还有一种(众多中的一种)使用流行库(Apache Commons)的方法:
import org.apache.commons.lang3.StringUtils;
String joinedList = StringUtils.join(someList, ",");
根据其他人的评论(从Java 8开始),有一个优雅的选择:
String joinedList = someList.stream().map(String::valueOf).collect(Collectors.joining(","));
numbers.stream().map(i -> i.toString()).collect(Collectors.joining(","))
- James