I read line with
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); reader.readLine();
Example input is
1 4 6 32 5
What is the fastest way to read the input and put it into an integer array int[]
?
I'm also looking for some one-line solution if possible.
To split a number into an array:Convert the number to a string. Use the Array. from() method to convert the string into an array of digits. Use the map() function to convert each string in the array to a number.
You could use Scanner
:
Scanner scanner = new Scanner(System.in); List<Integer> list = new ArrayList<Integer>(); while (scanner.hasNextInt()) list.add(scanner.nextInt()); int[] arr = list.toArray(new int[0]);
Until we have closures in java, this is probably the shortest you can get.
int[] arr = list.toArray(new int[0]);
won't work because there's no conversion from Integer to int. You can't use int as a type argument for generics.
But yeah If you are working with Java 8 then you can use Stream API for it with the below code snippet(Better way of doing things).
int[] array = list.stream().mapToInt(i->i).toArray();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With