字符大小写转换
char a = 'A';
a ^= (1 << 5);
//效果与下面两种一样 小写转大写写法一样
/*a = (char) (a ^ (1 << 5));
a = (char) (a + 32);*/
System.out.println(a);
原理:大小写字母相差32,又因为异或重要特性:不进位加法,所以大写字母和(1<<5)异或变成变成小写字母,小写字母和(1<<5)异或变成大写字母。
判断是否为大/小写字母/数字(正则表达式)
public class Test1 {
private static final Pattern p = Pattern.compile("[A-Z]+");
private static final Pattern numberPattern = Pattern.compile("[0-9]+");
public static void main(String[] args) {
String str = "A";
String number = "123";
Matcher m = p.matcher(str);
if (m.matches()) {
System.out.println("uppercase.");
} else {
System.out.println("lowercase.");
}
Matcher mNumber = numberPattern.matcher(number);
if (mNumber.matches()) {
System.out.println("number string is the \"0-9\"");
}
}
}
打印结果: