Reputation: 2268
How could I get values entered in a single line by the user eq: 1, 3, 400, 444, etc.. into an array. I know I must declare a separator in this case the comma ",". Could someone help?
Upvotes: 1
Views: 16491
Reputation: 197
String input = "1, 3, 400, 444";
String[] numbers = input.split("\\s*,\\s*");
It's the right answer, "\\s*,\\s*" is a regular expression, regex is very useful for the string parsing.
Upvotes: 1
Reputation: 8926
String line = "1, 3, 400, 444";
for(String s : line.split(","))
System.out.println(s);
Upvotes: 1
Reputation: 340733
String input = "1, 3, 400, 444";
String[] numbers = input.split("\\s*,\\s*");
You can use much simpler separator in String.split()
like ","
but the more complex "\\s*,\\s*"
additionally strips whitespaces around comma.
Upvotes: 9
Reputation: 236004
Try this:
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]);
Now answer
is an array with the numbers in the string as integers. The other answers just split the string, if you need actual numbers you need to convert them.
System.out.println(Arrays.toString(answer));
> [1, 3, 400, 444]
Upvotes: 2