java - 如何在同一用户输入中接受字符串或整数

标签 java user-input

我想在 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 语句,但它说我有不兼容的类型(Stringint)。

我的错误通常是:线程“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/

相关文章:

java - 有没有类似 SqlAlchemy Sql Soup for Java 的东西?

javascript - 以编程方式更改内容后 scrollHeight 不重置

c++ - 如果用户输入的字符串变量无效,如何重复输入命令-C++

带有 if else 语句的 Java Scanner 输入

python - 安全地使用 raw_input 生成的字符串 (Python)

java - 如何在方法中返回枚举

java - 如何以最少的查询次数获取所有多对多关系?

linux - 禁用挂起脚本

java - 如何在java中使菜单重新出现

java - 如何打开文件并查看它