Java中将整数集合转换为字符串

3

我想在Java中将一组整数转换为单个字符串。我该怎么做?

 Set<Integer> s = new HashSet<>();
        s.add(1);
        s.add(3);

        int n = s.size();
        String arr[] = new String[n];

        arr = s.toArray(arr);

        for (String x : arr )
            System.out.println(x);
3个回答

10

使用 joining 方法:

String result = s.stream().map(String::valueOf).collect(joining());

没有 Stream

List<String> intString = new ArrayList<>();
for (Integer i : s) {
   intString.add(String.valueOf(i));
} 

String result = String.join("", intString);

但是要小心,如果你想按照输入顺序打印这些数字(先添加的将先被打印),那么你需要使用 LinkedHashSet 来记住这个顺序:

Set<Integer s = new LinkedHashSet<>();

我可以不使用流来完成吗? - Teja
我正在遍历一个数字数组并将它们添加到LinkedHashSet中。一旦我在哈希集中拥有了所有所需的元素,我想将其转换为字符串,然后进行我想要的操作。 - Teja
1
如果您尚未设置导入,请尝试使用collect(Collectors.joining()) - Roger

2

使用老式Java,您可以通过使用 StringBuilder 来实现:

StringBuilder builder = new StringBuilder();
for (Integer i : s) {
    builder.append(i);
}
String result = builder.toString();

1
你可以使用 Integer.toString() 将每个整数转换为字符串,然后将其附加到 StringBuilder 中(在整数之间添加一个空格以分隔整数)。然后,您可以将 StringBuilder 转换为 String 并修剪它(以删除尾随空格)。
Set<Integer> s = new HashSet();
s.add(1);
s.add(3);
StringBuilder sb = new StringBuilder();
for(int x : s) {
    sb.append(Integer.toString(x));
    sb.append(" ");
}
String st = sb.toString();
st = st.trim();
System.out.print(st);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接