对于java,如果我想执行if语句以确保输入只包含一个字符,我应该如何继续?

krugob8w  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(330)

我试图做一个while循环来获取用户输入,并确保他们输入的只是一个字符,因此如果他们做ab,它将要求他们做另一个用户输入,而不是把他们输入的第一个字母作为答案。我能用下面这样的试一试吗?现在不行,我也不知道为什么。
谢谢你的帮助!

boolean single = true;

                while(single) {

                    try {
                        if(letter.length()==1) {
                            break;
                        } else {
                            System.out.println("Please enter a single character only!");
                        }
                    } catch (Exception e) {
                      System.out.println("Please enter a single character only!");
                    }
                }
efzxgjgh

efzxgjgh1#

这不适合引发异常。首先,检查输入的长度,如果有效,检查 input.charAt(0) 是一封信。您可以使用布尔变量来跟踪输入是否无效,并在输入无效的情况下进行循环。
有不同类型的循环。我更喜欢使用 do-while 在这种情况下循环。一 do-while 循环保证其主体将至少执行一次。查看本教程了解更多信息。

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        boolean valid;
        String input;
        do {
            valid = true;
            System.out.print("Enter a letter: ");
            input = scanner.nextLine();
            if (input.length() == 0 || input.length() > 1 || !Character.isLetter(input.charAt(0))) {
                System.out.println("This is an invalid input. Please try again.");
                valid = false;
            } else {
                System.out.println("This is a valid input.");
                // ...do other processing
            }
        } while (!valid);
    }
}

示例运行:

Enter a letter: 
This is an invalid input. Please try again.
Enter a letter: abc
This is an invalid input. Please try again.
Enter a letter: 1
This is an invalid input. Please try again.
Enter a letter: w
This is a valid input.

相关问题