【问题标题】:how to get numbers separated by comma entered in a line into an array in Java如何将在一行中输入的以逗号分隔的数字放入Java中的数组中
【发布时间】:2012-05-12 16:11:29
【问题描述】:

如何将用户 eq: 1、3、400、444 等在一行中输入的值放入数组中。我知道在这种情况下我必须声明一个分隔符,即逗号“,”。有人可以帮忙吗

谢谢

【问题讨论】:

    标签: java arrays numbers comma


    【解决方案1】:
    String input = "1, 3, 400, 444";
    String[] numbers = input.split("\\s*,\\s*");
    

    您可以在String.split() 中使用更简单的分隔符,例如",",但更复杂的"\\s*,\\s*" 还会去除逗号周围的空格。

    【讨论】:

    • 另外,如果您不想使用正则表达式,请在使用 String.split(",") 方法后使用 String.trim() 方法。
    • @Thihara:好吧,"," 分隔符仍然是一个正则表达式 - 只是一个更简单的表达式。
    • 我同意。我只是认为最好提供一种更简单的方法,因为这似乎是一个初学者问题。
    • 是的,这似乎是一个很好的解决方案,但在我的情况下,输入是 int 类型。换句话说,我需要在一行中收集 1、3、3、4,然后将其解析为单个数字...
    【解决方案2】:

    试试这个:

    String line = "1, 3, 400, 444";
    
    String[] numbers = line.split(",\\s+");
    int[] answer = new int[numbers.length];
    
    for (int i = 0; i < numbers.length; i++)
        answer[i] = Integer.parseInt(numbers[i]);
    

    现在answer 是一个数组,其中字符串中的数字为整数。其他答案只是拆分字符串,如果您需要实际的数字,则需要转换它们。

    System.out.println(Arrays.toString(answer));
    > [1, 3, 400, 444]
    

    【讨论】:

      【解决方案3】:

      你想使用split:

      userInput.split(",");
      

      【讨论】:

        【解决方案4】:
        String line = "1, 3, 400, 444";
        for(String s : line.split(","))
           System.out.println(s);
        

        【讨论】:

          【解决方案5】:
          String input = "1, 3, 400, 444";
          String[] numbers = input.split("\\s*,\\s*");
          

          这是正确的答案,“\\s*,\\s*”是正则表达式,正则表达式对于字符串解析非常有用。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2018-12-10
            • 2020-12-10
            • 1970-01-01
            • 1970-01-01
            • 2012-08-18
            • 2023-02-07
            • 1970-01-01
            • 2022-12-19
            相关资源
            最近更新 更多