我想写一个程序,如果用户输入一个字符,程序在屏幕上显示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文档的链接:
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来检查用户是否输入了单个字符,但可以使用Regex。我已经测试过了,它在你的用例中工作得很好。
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");
}
}
}