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



我想写一个程序,如果用户输入一个字符,程序在屏幕上显示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");
}
}
}

相关内容

  • 没有找到相关文章

最新更新