Character类中的isLetter方法和isUpperCase、isLowerCase的区别
页面需要做某些验证的时候,经常要判断当前字符是不是字母,java.lang包中Character类提供了三个方法用来判断字符与字母的关系:
- public static boolean isLetter(char ch):判断指定字符是否为字母。
- public static boolean isLowerCase(char ch):判断指定字符是否为小写字母。
- public static boolean isUpperCase(char ch):判断指定字符是否为大写字母。
乍一看觉得isLetter这个方法很方便啊,直接就可以判断字符是否是字母,如果你真的这么使用的话,那么恭喜你,入坑了,因为isLetter这个方法把汉字也当成了字母看待,如:
System.out.println(Character.isLetter('中'));
控制台输出结果:
true
所以isLetter方法是不能用来判断当前字符是否为字母的,如果要判断一个字符是否为字母的时候,需要把isUpperCase和isLowerCase组合起来使用,如:
char a='中';
if(Character.isLowerCase(a)||Character.isUpperCase(a)) {
System.out.println("字符a是字母!");
}else {
System.out.println("字符a不是字母!");
}
控制台输出结果:
字符a不是字母!
希望大家在使用的过程中能够注意这一点,避免入坑。