在Java中将输入作为字符串并限制用户不输入整数

我想在 Java 中将输入作为字符串并使用 try catch 限制用户不输入整数。


import java.util.*;


public class trycatch { 


    public static void main(String args[]) { 


        Scanner sc=new Scanner(System.in);

        String a; 


        System.out.println("\n\nEnter the name"); 


        try { 

            a=sc.nextLine(); 


            System.out.println("You name is "+a); 

        } 


        catch(InputMismatchException b) { 

            System.out.println("There is problem with your input"); 

        } 

    } 

}


慕村9548890
浏览 201回答 3
3回答

蝴蝶刀刀

测试是否是int一个异常,如果不是则抛出异常a=sc.nextLine(); Integer.valueOf(a); // throws NumberFormatException// this is number so go to top of loopcontinue;} catch(NumberFormatException b) {         System.out.println("There is NO problem with your input");        // we can use `a` out side the loop } 

萧十郎

使用该技术尝试解析用户作为 int 输入的内容。如果转换成功,这意味着他们输入了一个整数,你应该抛出一个异常,因为你说你不希望他们输入一个整数(我理解这意味着你不希望他们只输入一个数字序列)我没有给你确切的答案/为你编写代码,因为你显然在学习 Java,这是一个学术练习。你的大学/学校对教授/评估我的编程能力不感兴趣,他们对你的感兴趣,所以我为你做你的工作对你没有任何价值:)如果您在实施我的建议时遇到困难,请编辑您的问题以包含您改进的代码,我们可以再次提供帮助作为旁注,我建议您将错误消息做得更好,以“出现问题”对用户来说,没有什么比被告知存在问题但不知道问题是什么或如何解决更令人沮丧的了。

心有法竹

使用正则表达式可以最好地解决此问题,但由于您的要求是使用 try catch,因此您可以使用以下方法public static void main(String[] args) {    Scanner sc = new Scanner(System.in);    String a = null;    System.out.println("\n\nEnter the name");    try {        // try to get Integer if it is number print invalid input(because we        // don't want number)        sc.nextInt();        System.out.println("There is problem with your input");    }    //getting exception means input was not an integer    // if input was not an Integer then try to read that as string and print    // the name    catch (InputMismatchException b) {        a = sc.next();        System.out.println("You name is " + a);    }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java