当前位置: 首页 > 知识库问答 >
问题:

当用户在使用Scanner对象时输入整数时捕获异常

齐涛
2023-03-14

当用户在扫描器中输入任何整数时,我试图捕捉一个异常。我理解使用字符串item=scan。nextLine()将允许进行任何输入,包括整数。我创建了一个自定义异常来捕捉数字1。但是如果用户输入999或任何其他整数会发生什么呢。我如何捕获这些其他整数作为异常的一部分?

import java.util.Scanner;import java.lang.Exception;

公共类示例一{

public static void main(String[] args) throws TestCustomException {
    
    System.out.println("Please enter any word:");
    
    try {
        
        Scanner scan = new Scanner(System.in);
        String item = scan.nextLine();
        if (item.contains("1")) {
            throw new TestCustomException();
        } 
    }catch (TestCustomException e) {
        System.out.println("A problem occured:  " + e);
    }
    
    System.out.println("Thank you for using my application.");
    
}

}

公共类TestCustomException扩展了该异常{

TestCustomException (){
    super("You can't enter any number value here");
}

}

共有1个答案

仲孙凡
2023-03-14

正则表达式

public static void main(String[] args) {
        System.out.println("Please enter any word:");
        try {
            Scanner scan = new Scanner(System.in);
            String item = scan.nextLine();

            Pattern pattern = Pattern.compile("-?[0-9]+.?[0-9]+");
            Matcher isNum = pattern.matcher(item);

            if (isNum.matches()) {
                throw new RuntimeException();
            }
        }catch (RuntimeException e) {
            System.out.println("A problem occured:  " + e);
        }
        System.out.println("Thank you for using my application.");

    }
 类似资料:
  • 所以我一直在寻找如何使用扫描仪从用户那里获取输入。发生的事情是我在第一个扫描仪之后进入一个无限循环。我尝试将第二台扫描仪的名称改为read而不是in,但没有任何改变。我加入了。nextLine()位于第一个scanner实例的末尾,然后我关闭以尝试解决问题,但这似乎不起作用。不太清楚为什么会这样。 这是eclipse中的输出: 不允许用户像询问有多少电脑播放器时那样输入猜测。我不知道我应该如何解决

  • 问题内容: 我正在尝试这是一个计算器的代码。如何处理来自用户的无效输入? // ANSWER:将标头桥接到Objective-C // https://github.com/kongtomorrow/TryCatchFinally- Swift 这是相同的问题,但在objc中,但我想迅速进行 我只想显示一条消息,如果它不起作用,但是现在当用户输入的格式不正确时,我将收到一个异常消息。 问题答案:

  • 问题内容: 我从过去的经验中了解到的是, 或将继续搜索,直到在同一行或下一行找到整数或双精度都没有关系,而通过扫描器类读取输入的字符串时,则会考虑空格和将光标保持在同一行,如果在in代码之前使用if 会考虑剩余的光标,有人可以帮助我更详细地了解这一点,尤其是关于它的开始位置和结束位置吗?另外,如果我认为任何错误是正确的,请告诉我。 问题答案: 您最初的理解是错误的。 我从过去的经验中了解到的是.n

  • 本文向大家介绍Java使用Scanner类获取用户输入实例详解,包括了Java使用Scanner类获取用户输入实例详解的使用技巧和注意事项,需要的朋友参考一下 创建 Scanner 对象的基本语法: Scanner 类的 next() 方法 运行结果如下,会发现空格后面的英文没有被打印出来: Scanner 类的 nextLine 方法 在以上基础上修改代码: 运行结果,空格后面的英文也可以被打印

  • 我对Java相当陌生,正在尝试构建一个“十大Java初学者项目”,更具体地说,是一个温度转换器。我的代码引发以下错误: 我最初使用scanner“*.nextDouble()”方法获取double,但将其更改为“parseDouble”方法,因为我认为这可能是问题所在。唉,这没有帮助。如果您能帮助解决此问题,我们将不胜感激!

  • 我现在正在学习java,开始学习方法、类和对象。我正在尝试编写一个简单的程序,为公司的2个单独的员工设置值,然后允许用户输入来改变特定对象的某些变量。需要通过用户输入更新的变量是对象Employee2的MonthlySalary和FirstName。我真的不确定如何构造用户输入部分,我正不知所措,试图找到一个解决方案。 使用类文件Employee.java