我想在 Java 中接受用户输入的整数或字符串,但无论我做什么,我总是会收到错误。
我的代码非常简单(我是初学者):
System.out.println(
"Enter the row number (or enter e to quit the application):"
);
Scanner rowInput = new Scanner(System.in);
int row1 = rowInput.nextInt();
我希望用户也能够按“e”退出。
我尝试了几件事:
1) 将 row1 转换为字符串并说:
if((String)(row1).equals("e"){
System.out.println("You have quit") }
2) 将“e”转换为整数并说:
if(row1 == Integer.ParseInt("e"){
System.out.println("You have quit") }
3) 执行 switch 语句,但它说我有不兼容的类型(String
和 int
)。
我的错误通常是:线程“main”中的异常 java.util.InputMismatchException
有人可以帮助我吗?
提前非常感谢!
最佳答案
你可以尝试这样的事情
Scanner rowInput = new Scanner(System.in);
String inputStr = rowInput.nextLine();
try{
int row1 = Integer.parseInt(inputStr);
} catch (NumberFormatException e) //If exception occurred it means user has entered 'e'
{
if ("e".equals(inputStr)){
System.out.println("quiting application");
}
}
您应该从扫描仪中读取 String
类型的输入,并尝试使用 Integer.parseInt()
将 String
输入转换为整数。
如果解析成功,说明用户输入了一个Integer。
如果失败,它会抛出一个异常 NumberFormatException
,它会告诉你它不是一个整数。因此,您可以继续检查e
,如果是的话,根据您的要求做任何您想做的事情。
关于java - 如何在同一用户输入中接受字符串或整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23028789/