你如何检查用户输入是否是单个字符

How do you check if the user input is a single Char

我正在尝试编写一个程序,如果用户输入单个字符,程序会在屏幕上显示 True,否则如果输入多个字符,它会打印 False。

public class FinalExamTakeHome8 {
    public static void main(String[] args) {
        try (Scanner kbd = new Scanner(System.in)) {
            System.out.println("Enter an item");
            if (kbd.hasNextInt() || kbd.hasNextChar() || kbd.hasNextDouble()) {
                System.out.println("True");
            } else {
                System.out.println("False");
            }
        }
    }
}

您可以使用 nextLine() 方法来读取用户输入,无论是一个还是多个字符。然后,获取文本后,检查其长度是否等于 1。

public static void main(String[] args) {
    try (Scanner kbd = new Scanner(System.in)) {
        System.out.println("Enter an item");
        String input = kbd.nextLine();
        if (input.length() == 1) {
            System.out.println("True");
        } else {
            System.out.println("False");
        }
    }
}

编辑:出于某种原因,它没有在文本中正确包含 link。我将 link 留给扫描仪文档:

https://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#nextLine()

您可以使用scanner.nextLine()方法获取字符串,然后使用length()方法测量大小。

String line = kbd.nextLine();
System.out.println(line.length()==1); 

因为比较会产生一个布尔值,所以您可以打印它。

没有专门的 API 检查用户是否输入了单个字符,但可以使用正则表达式。我已经对其进行了测试,并且非常适合您的用例。

public static void main(String[] args) {
    try (Scanner kbd = new Scanner(System.in)) {
        System.out.println("Enter an item");
        if (kbd.hasNextInt() || kbd.hasNext("^[a-zA-Z]") || kbd.hasNextDouble()) {
            System.out.println("True");
        } else {
            System.out.println("False");
        }
    }
}