【问题标题】:How to change a string of numbers, spaces, and commas, to an arraylist of integers如何将一串数字、空格和逗号更改为整数数组列表
【发布时间】:2019-02-21 23:09:26
【问题描述】:

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

例如,输入为 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++;
                }   

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

【问题讨论】:

  • 您是否尝试过使用String 类的split 方法?

标签: java string arraylist numbers int


【解决方案1】:

您可以通过使用String.trim() 将修剪所有空格和Integer.valueOf() 将字符串更改为整数来使用java 8 流来实现这一点

List<Integer> l= Arrays.stream("1, 2, 3, 4, 11, 23".split(",")).map(item->Integer.valueOf(item.trim())).collect(Collectors.toList());
    System.out.println(l);

【讨论】:

  • 谢谢,效果很好,可以准确地向我解释那行代码在做什么,尤其是 .map 部分,对不起,我有点菜鸟
  • 只是问你对 lambda 表达式有什么想法,所以 map 将获取数组中的每个字符串 ("1, 2, 3, 4, 11, 23".split(",") this将创建一个字符串 []),并在 map 中使用String.trim() 修剪字符串后将每个字符串转换为整数,如果您仍有疑问,我将指导您学习教程
【解决方案2】:

我会拆分为可选空格包围的逗号,流式传输,将每个标记映射到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);

【讨论】:

    【解决方案3】:
    1. 使用 String.split 以逗号分隔。
    2. 对于数组中的每个元素,调用 String.trim()。
    3. 使用 Integer.valueOf() 将此元素转换为数字
    4. 将其添加到您的列表中。

    【讨论】:

      猜你喜欢
      • 2020-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-20
      • 2013-11-02
      • 2015-10-24
      相关资源
      最近更新 更多