【发布时间】:2021-08-12 00:15:22
【问题描述】:
public static boolean correctchar(char b) {
Scanner scan = new Scanner(System.in);
b = scan.next().charAt(0);
if (Character.toString(b).matches("^[a-zA-Z]") ) {
System.out.println("True");
return true;
} else {
System.out.println("False");
return false;
}
}
我有这种方法可以检查输入是否是字母表中的字母,但我想确保用户的输入不为空并且用户只输入一个字母。例如“A”或“a”是一个正确的字符,问题是如果我输入“Abcdef”那么它仍然是正确的,因为第一个字母仍然是一个有效的字符。我想让它让用户只能输入一个字符,我想我已经通过使用扫描仪和charAt(0) 做到了这一点,但是有没有更有效的方法来做到这一点,我也不确定如何使输入不为空。
【问题讨论】:
-
您可以检查字符串的长度。 String 类有一个 length() 方法
-
但变量最初是一个字符,所以当我这样做时,它不会让我检查长度。
-
@john 如果您将
b作为参数传递给方法,您为什么要读取correctchar()中的输入?您可能需要在调用correctchar()之前在调用站点读取输入,然后将读取的字符传递给correctchar()。 -
我不太清楚你的意思,你的意思是main方法吗?
-
@john 是的,该值将在主方法(或您调用方法
correctchar()的任何地方)中从用户处接受,并且在调用此方法时将传递输入的值:@ 987654331@;
标签: java regex null char boolean