我正在尝试编写一个程序,如果用户输入单个字符,则程序在屏幕上显示 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");
}
}
}
您可以使用
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");
}
}
}