Почему бы вам просто не использовать метод nextInt () снова и снова (полностью обходя использование split), например,
import java.util.*;
public class MyClass {
public static void main(String []args){
Scanner scanner = new Scanner(System.in);
int arCount = scanner.nextInt();
int[] ar = new int[arCount];
for(int i=0;i<arCount;i++){
ar[i] = scanner.nextInt();;
}
System.out.println(Arrays.toString(ar));
scanner.close();
}
}
UPDATE:
В исходной программе вы сначала используете метод nextInt (), который не использует символ новой строки '\ n'. Таким образом, следующий вызов nextLine () фактически использует символ новой строки в той же строке, а не строку ниже той, которая содержит целые числа для вашего массива. Таким образом, чтобы ваш код работал правильно, вы можете немного изменить его следующим образом:
import java.util.*;
public class MyClass {
public static void main(String []args){
Scanner scanner = new Scanner(System.in);
int arCount = scanner.nextInt(); // doesn't consume \n
int[] ar = new int[arCount];
scanner.nextLine(); //consumes \n on same line
String line = scanner.nextLine(); // line is the string containing array numbers
System.out.println(line);
String[] arItems = line.trim().split(" "); //trim the line first, just in case there are extra spaces somewhere in the input
System.out.println(Arrays.toString(arItems));
for (int i = 0; i < arCount; i++) {
int arItem = Integer.parseInt(arItems[i].trim());
ar[i] = arItem;
}
System.out.println(Arrays.toString(arItems));
}
}