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

如何检查输入是否字符串与尝试捕捉?

张唯
2023-03-14

我有以下代码,其中包含try... catch操作,用于检查它是否是字符串。但是,无论输入如何,它都不会抛出异常。我希望它做的是检查输入是否是文本,例如“Nick”,如果不是,则抛出异常并提示用户重试。

public static void main(String args[]) {
    int c = 1
    String temp, name="" ;
    Scanner myObj = new Scanner(System.in);  // Create a Scanner object
    System.out.println("Enter name");

    while (c == 1) {
        try {
            temp = myObj.nextLine();
            name = temp;
            c = 2;
        } catch (InputMismatchException e) {
            System.out.println("Name is not a string. Try again.");
        }
    }
}

共有3个答案

佴普松
2023-03-14

我认为这种方法适合你:

public static void main(String args[]){
    String name = "";
    Scanner myObj = new Scanner(System.in); 

    final String correctExpectedName = "Nick";
    bool nameIsAccepted = false;
    while(name.IsEmpty()) {
        System.out.print("Enter name: ");
        string tempInput = myObj.nextLine();
        if (correctExpectedName.equals(tempInput)) {
            name = tempInput; // here you can also use name = correctExpectedName;
        } else {
            System.out.println("Name is not correct. Please try again ...");
        }
    }
}

请不要使用异常来控制应用程序逻辑流。例外有不同的目的。

孔弘盛
2023-03-14

任何输入都将是一个字符串。如果你想检查里面是否有数字或特殊字符,而不是字母,那么你可以在字符串中循环使用这个字符。isAlphabetic(),如果任何字符不是字母,则返回false。

陈高寒
2023-03-14

nextline()的返回类型是String。这意味着用户输入的任何内容都将被视为String(即使用户输入了数字,它仍将被视为String)。所以在这种情况下不需要异常处理。

 类似资料:
  • 你能帮我检查任何替代代码来检查我的输入字符串是否已编码?

  • 问题内容: 如何检查,如果用户的字符串输入是一个数字(例如等)? 上面的方法不起作用,因为input总是返回一个字符串。 问题答案: 只需尝试将其转换为,然后在无法正常工作时对其进行救助。

  • 我试图检查用户是否输入了字符串。如果用户输入了字符串,我的程序应该输出错误消息。如果用户输入了整数,我的程序应该继续运行 这是我到目前为止的代码,我需要添加另一个条件来检查用户是否输入字符串,我尝试了一些方法,但它们不起作用

  • 问题内容: 我想检查我的字符串是否包含+字符。我尝试了以下代码 但是它没有给出预期的结果。 问题答案: 您需要此: 类的方法不使用正则表达式作为参数,而是使用普通文本。 编辑: 输出:

  • 问题内容: 我想测试输入的String是否平衡。如果有匹配的左,右括号,括号或花括号,则将是平衡的。 我在选择做什么时遇到问题。我是否应该将每个左括号或右括号,方括号或大括号放在堆栈中,然后弹出它们?如果我将它们弹出,那对我有什么帮助? 问题答案: 1)对于每个开口支架:将其推入堆栈。 2)对于每个右括号:从堆栈中弹出并检查括号的类型是否匹配。如果不退货; 即 String中的当前符号是,如果从堆

  • 我想测试输入字符串是否平衡。如果有一个匹配的开始和结束括号、括号或大括号,这将是平衡的。 我在选择做什么时遇到了问题。我是否应该将每个开始或结束的括号、括号或大括号放在一个堆栈中,然后将它们弹出?如果我把它们拿出来,这对我有什么帮助?