尽管一切都应该按预期工作,但我收到了 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/