簡體   English   中英

Java中的InputMismatchException

[英]InputMismatchException in Java

我收到一個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命名約定顯示變量以小寫字母開頭,例如addressfullName

在閱讀Reimeus建議的整行之后,您可以使用將String解析為int

int age = Integer.parseInt(line);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM