miatech
miatech

Reputation: 2268

How to get numbers separated by comma entered in a line into an array in Java

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

Answers (5)

Igor
Igor

Reputation: 33983

You want to use split:

userInput.split(",");

Upvotes: 2

user1112699
user1112699

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

isvforall
isvforall

Reputation: 8926

String line = "1, 3, 400, 444";
for(String s : line.split(","))
   System.out.println(s);

Upvotes: 1

Tomasz Nurkiewicz
Tomasz Nurkiewicz

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

Óscar López
Óscar López

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

Related Questions