[英]How can I use Java Scanner to take an integer input? NoSuchElementException
[英]How can I take either two or one integer as input on the same line in Java?
例如,如何取值1 0
或僅取值2
然后在程序的后期使用。 假設1
將數字0
添加到列表中,而2
打印出一個短語。 現在我只知道如何使用在同一行上取兩個數字
Scanner sc = new Scanner(System.in); // receives input for x y
int x = Integer.parseInt(sc.next());
int y = Integer.parseInt(sc.next());
只需在術語之間放置空格:
Scanner scanner = new Scanner(System.in);
int[] values = new int[2];
String[] arguments = scanner.nextLine().split(" ");
for(int i = 0; i < arguments.length && i < values.length; i++){
values[i] = Integer.parseInt(arguments[i]);
}
scanner.close();
在第 2 行,您指定最大輸入
在“”的第 3 行,您可以指定術語之間的內容
在第 2 行和第 5 行,您可以指定術語類型
只是添加到@Devon Rutledge
的答案中,該 Scanner 類在標記(在本例中為數字)之間有 1 個或多個空格的情況下分隔標記。
因此,正如上面提到的 Devon,您應該在輸入之間添加空格。
但是,上面發布的答案的工作方式與正常的sc.next()
完全相同,盡管存在一個問題,即如果您在輸入之間輸入兩個空格,則會出現五個錯誤。 所以你的代碼本身沒有問題,但只是輸入。
如果你確實想接受沒有空格的個位數,那么你可以試試這個:
Scanner sc = new Scanner(System.in);
sc.useDelimiter("");
int x = sc.nextInt();
int y = sc.nextInt();
此外,最好使用sc.nextInt()
為sc.next()
甚至會接受的字母,這不能不能轉換為int
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.