提问人:Prago 提问时间:5/6/2022 最后编辑:dani-vtaPrago 更新时间:5/6/2022 访问量:945
如何检查用户输入是否为单个字符
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");
}
}
}
}
答:
2赞
dani-vta
5/6/2022
#1
您可以使用该方法读取用户输入,而不管是一个或多个字符。然后,获取文本后,检查其长度是否等于 1。nextLine()
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");
}
}
}
编辑:由于某种原因,它没有将链接正确地合并到文本中。我将在此处保留指向扫描仪文档的链接:
https://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#nextLine()
1赞
jimboweb
5/6/2022
#2
您可以使用该方法获取字符串,然后只需使用该方法来测量大小。scanner.nextLine()
length()
String line = kbd.nextLine();
System.out.println(line.length()==1);
因为比较将产生布尔值,所以你可以直接打印它。
1赞
Shubham Saraswat
5/6/2022
#3
没有专用的 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");
}
}
}
评论
Scanner
String input = kbd.nextLine(); System.out.println(input.matches(".{1}"));
.