java - Java 中的输入不匹配异常

标签 java java.util.scanner

尽管一切都应该按预期工作,但我收到了 InputMismatchException 错误。仅当用户必须输入 int 值(setAge)时,我才会收到错误。为什么?

public static void main(String[] args) {
    Scanner keyboard = new Scanner(System.in);

    Withdraw myAccount = new Withdraw();

    Customer Jack = new Customer();
    out.println("Enter your full name");
    String FullName = keyboard.next();
    Jack.setName(FullName);

    out.println("Enter your address");
    String Address = keyboard.next();
    Jack.setAddress(Address);

    // I GET THE ERROR IN THE LINES BELOW.
    out.println("Enter your age");
    int age = keyboard.nextInt();
    Jack.setAge(age);

这是 Customer 类的代码

public class Customer {

String name;
String address;
int age;

public void setName(String NameIn) {
    name = NameIn;
}

public String getName() {
    return name;
}

public void setAddress(String addressIn) {
    address = addressIn;
}

public String getAddress() {
    return address;
}

public void setAge(int ageIn) {
    age = ageIn;
}

public int getAge() {
    return age;
}

先谢谢大家了!

最佳答案

默认情况下,next使用空格作为单词分隔符,因此任何包含这些字符的地址都将导致输入传递到下一个 Scanner 输入语句,即本例中的 nextInt

因此使用 nextLine 读取整行输入:

String address = keyboard.nextLine();

如果该变量中存在任何空格,fullName 也需要同样的操作。

旁白:Java 命名约定表明变量以小写字母开头,例如地址全名

关于java - Java 中的输入不匹配异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19706633/

相关文章:

java - 如何在一行中打印一个数组的所有内容?

java - 使用 hasNext() Scanner 方法仅允许一组 X 输入

java - 添加 while 循环,使用户输入的石头剪刀布游戏重复进行,直到用户结束游戏

java - Maven 添加特定 java 包的依赖

java - 如何显示来自广播接收器的通知?

java - 具有多个来源的 MapStruct 映射器

java - Java中非常简单的用户登录系统

java - 在Android上使用网络套接字发送传感器的原始数据

java - Tomcat Web 应用程序可以告诉负载均衡器它的 Tomcat 已关闭吗?

java - 从java中的数组中查找重复元素出现两次以上