如何将在一行中输入的以逗号分隔的数字放入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中的数组中的主要内容,如果未能解决你的问题,请参考以下文章