[英]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命名約定顯示變量以小寫字母開頭,例如address
和fullName
。
在閱讀Reimeus建議的整行之后,您可以使用將String
解析為int
int age = Integer.parseInt(line);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.