为了账号安全,请及时绑定邮箱和手机立即绑定

不了解扫描仪的不匹配/抛出错误

不了解扫描仪的不匹配/抛出错误

呼唤远方 2022-10-26 16:53:29
我正在设置一个简单的月份程序。我像在其他任务中一样设置了扫描仪,但这次扫描仪没有工作。我收到多个我不明白的错误。我已经复制并粘贴了其他作业,但我没有收到他们的错误,而且它非常简单,所以我看不出我可能会搞砸什么。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贡献1735条经验 获得超5个赞

如果你真的想输入一月,你需要一个字符串

String month = input.nextLine();


查看完整回答
反对 回复 2022-10-26
?
元芳怎么了

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 之间的数字)


查看完整回答
反对 回复 2022-10-26
?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

如果您输入两个至少用一个空格分隔的 int 值,则此代码可以正常工作!

可能你在年和月之间有一个符号(除了空格)


查看完整回答
反对 回复 2022-10-26
  • 3 回答
  • 0 关注
  • 119 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信