我正在设置一个简单的每月计划。我已像处理其他作业一样设置了扫描仪,但这次扫描仪无法正常工作。我遇到了多个我不明白的错误。
我已经复制并粘贴了其他作业,但没有得到他们的错误,这很简单,所以我看不到我会搞砸什么。
import java.util.Scanner;
public class H3_ken {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int month;
int year;
System.out.println("Enter what month you would like to look up: ");
month = input.nextInt();
System.out.println("Enter what year: ");
year = input.nextInt();
System.out.println("You have chosen to look up the month of " + month + " in the year of " + year + ".");
}
}
这是输入月份的输出。
Enter what month you would like to look up:
January
Exception in thread "main" java.util.InputMismatchException
at java.base/java.util.Scanner.throwFor(Scanner.java:939)
at java.base/java.util.Scanner.next(Scanner.java:1594)
at java.base/java.util.Scanner.nextInt(Scanner.java:2258)
at java.base/java.util.Scanner.nextInt(Scanner.java:2212)
at H3_ken.main(H3_ken.java:12)
答案 0 :(得分:2)
如果您实际上想输入一月,则需要一个字符串
String month = input.nextLine();
答案 1 :(得分:0)
如果要将字符串输入为月份,请使用$ print(test)
>>> [array([[1], [3]]), array([[12], [5]]), ... etc.]
。
由于Java具有数据类型,因此您需要对其进行调整。
例如,您不能在Scanner.nextLine();
中输入数字。
Java的Scanner类也是如此。 我知道您只是问过为什么您的String输入不起作用,但是这里有所有Scanner输入功能,因此下次您不会感到困惑:
String
从用户读取布尔值(false或true)
nextBoolean()
从用户读取一个字节值(介于-127和127之间的数字)
nextByte()
从用户读取一个双精度值(精确的十进制数字)
nextDouble()
从用户读取浮点值(double的较不精确版本)
nextFloat()
从用户读取一个int值(-2147483647和2147483647之间的数字)
nextInt()
从用户读取字符串值
nextLine()
从用户读取一个长值(介于-9.223372e + 18和9.223372e + 18之间的数字)
nextLong()
从用户读取一个短值(-32767和32767之间的数字)
答案 2 :(得分:-2)
如果您输入两个int值,并用至少一个空格隔开,则此代码可以正常工作!
您可能在年和月之间有一个符号(空格除外)