首页 > 解决方案 > 在一行上打印多行 int 值作为分隔字符串

问题描述

我能够每行打印一个整数。例如:

1
2
3

尝试将它们放入列表并以逗号分隔的字符串输出时遇到错误。例如,我想:

1,2,3

我遇到“无法尊重 int”或“找不到符号(收集器)”错误。

我的错误在这个块中:

//System.out.println(value); // correctly prints each number on separate line

// errors
ArrayList<Integer> myList = new ArrayList<>();    
List<String> list = Arrays.asList(value.toString());
String result = myList.stream().collect(Collectors.joining(","));

完整代码是:

import java.util.*;
public class Test{
    public static void main(String args[]){
        System.out.print("How many numbers: ");
        Scanner input = new Scanner(System.in);
        int size = input.nextInt();
        ArrayList<Integer> values = new ArrayList<>();
        for(int count = 0; count < size; count++){
            System.out.print("Enter value "+(count+1)+": ");
            int temp = input.nextInt();
            values.add(temp);
        }
        for(int value : values){
            //System.out.println(value); // correctly prints each number on separate line
            
            // errors
            ArrayList<Integer> myList = new ArrayList<>();    
            List<String> list = Arrays.asList(value.toString());
            String result = myList.stream().collect(Collectors.joining(","));
        }
    }
}

我使用这些帖子作为参考,但无法获得所需的输出。
将整数列表转换为逗号分隔的字符串?
int 的错误不能被取消引用?

标签: java

解决方案


您需要将整数映射到字符串:

List<Integer> list = List.of(1,2,3,4);
String s = list.stream()
        .map(i->Integer.toString(i))   //<- covert to string
        .collect(Collectors.joining(","));
System.out.println(s);

输出:

1,2,3,4

推荐阅读