我正在设置一个简单的月份程序。我像在其他任务中一样设置了扫描仪,但这次扫描仪没有工作。我收到多个我不明白的错误。我已经复制并粘贴了其他作业,但我没有收到他们的错误,而且它非常简单,所以我看不出我可能会搞砸什么。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: JanuaryException 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)
3 回答
元芳怎么了
TA贡献1798条经验 获得超7个赞
如果要将字符串输入为月份,请使用Scanner.nextLine();
. 因为java有数据类型,你需要调整你的代码来适应它。例如,您不能在 中输入数字String
。
Java 的 Scanner 类也是如此。我知道您刚刚问过为什么您的 String 输入不起作用,但这里是所有 Scanner 输入函数,因此您下次不会感到困惑:
nextBoolean()
从用户读取一个布尔值(假或真)
nextByte()
从用户读取一个字节值(-127 到 127 之间的数字)
nextDouble()
从用户读取双精度值(精确的十进制数)
nextFloat()
从用户读取一个浮点值(双精度较低的版本)
nextInt()
从用户读取一个 int 值(介于 -2147483647 和 2147483647 之间的数字)
nextLine()
从用户那里读取一个字符串值
nextLong()
从用户那里读取一个长值(介于 -9.223372e+18 和 9.223372e+18 之间的数字)
nextShort()
从用户处读取一个短值(介于 -32767 和 32767 之间的数字)
添加回答
举报
0/150
提交
取消