如何将在一行中输入的以逗号分隔的数字放入Java中的数组中

Posted

技术标签:

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

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

谢谢

【问题讨论】:

【参考方案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*”是正则表达式,正则表达式对于字符串解析非常有用。

【讨论】:

以上是关于如何将在一行中输入的以逗号分隔的数字放入Java中的数组中的主要内容,如果未能解决你的问题,请参考以下文章

如何允许 html5 数字输入类型的逗号和点分隔符

需要使用 regexp_replace (Postgresql) 将逗号添加到数字列表中

有啥方法可以在CSV中输入用逗号分隔的数字?

如何将表中列中的逗号分隔值放入 SQL IN 运算符?

Laravel 验证 - 逗号分隔的字符串输入为数组

正则表达式将数字转换为逗号分隔的数字,可选两位小数