首页 > 解决方案 > 如何将一串数字、空格和逗号更改为整数数组列表

问题描述

我想弄清楚如何获取一串数字、空格和逗号,并将其转换为整数数组列表。

例如,输入是 1, 2, 3, 4, 11, 23,输出将是一个包含相同数字但以整数形式而不是字符串形式的数组列表。

我已经尝试了一些代码来删除空格和逗号,然后将数字添加到数组列表中,但我似乎无法让我的 if 语句工作。随意更改输入的性质或类似的任何内容,它非常灵活。如果有帮助,这是我现在拥有的重要一点;

numCheck = Kd.nextLine();
        for(int i = 1; i < numCheck.length(); i++) {
            if(String.valueOf(numCheck.charAt(1)) == " ") {
                num = numCheck.charAt(0);
                System.out.println(num+"a");
                nums.add(num);  
                break;
            }
            else if((String.valueOf(numCheck.charAt(i-1))) == " "){//1 2 34
                    num = numCheck.charAt(i);
                    System.out.println(num + "b");
                    nums.add(num);  
                    i+=1;

                }
            else if(String.valueOf(numCheck.charAt(i-1)) != " ")
                {
                    numsTogether = numCheck.charAt(i-1) + "" + numCheck.charAt(i);
                    System.out.println(numsTogether + "c");
                    nums.add(Integer.parseInt(numsTogether));
                    i++;
                }   

任何帮助表示赞赏,谢谢。

标签: javastringarraylistnumbersint

解决方案


我会用可选的空格包围的逗号分割,流式传输,将每个标记映射到一个int,然后将它收集到一个List. 像,

String numCheck = "1, 2, 3, 4, 11, 23";
List<Integer> al = Arrays.stream(numCheck.split("\\s*,\\s*"))
        .mapToInt(Integer::parseInt).boxed()
        .collect(Collectors.toList());
System.out.println(al);

推荐阅读