JDK中自带有isDigit/isLetter方法,可以判断字符是否是数字/字母。
public static void isNum() {
String s = ".?abcd123;";
for (int i=0; i
上面方法的输出为
. is letter: false, is digit: false
? is letter: false, is digit: false
a is letter: true, is digit: false
b is letter: true, is digit: false
c is letter: true, is digit: false
d is letter: true, is digit: false
1 is letter: false, is digit: true
2 is letter: false, is digit: true
3 is letter: false, is digit: true
; is letter: false, is digit: false
0-9对应的ascii码为48-57,A-Z:65-90,a-z:97-122。
可以利用ascii码值来进行判断。
public static void asciimethod() {
String s = ".?abcd023;";
boolean flag = false;
for(int i=0; i= 48 && c <= 57) flag = true;
System.out.println(c + " is num: " + flag);
flag = false;
}
}
正则匹配也是我们进行字符串处理常用的方法。
public static void remethod() {
String s1 = "1231";
Pattern pattern = Pattern.compile("[0-9]*");
boolean f1 = pattern.matcher(s1).matches();
System.out.println("s1 is num: " + f1);
String s2 = "12ab";
boolean f2 = pattern.matcher(s2).matches();
System.out.println("s2 is num: " + f2);
}
要判断一个字符是否为中文字符,可以使用正则匹配的方式。
public static void checkCharCn() {
String s1 = "你好";
String regex = "[\u4e00-\u9fa5]";
Pattern pattern = Pattern.compile(regex);
for (int i=0; i
其中,4e00-9fa5表示汉字的unicode编码范围。关于unicode编码与utf-8, utf-16的关系,可以查阅参考文献1。
从JDK1.7开始,还可以使用UnicodeScript来判断是否为中文字符。
public static boolean isChinese(char c) {
Character.UnicodeScript sc = Character.UnicodeScript.of(c);
if (sc == Character.UnicodeScript.HAN) {
return true;
}
return false;
}
1.https://www.cnblogs.com/kingcat/archive/2012/10/16/2726334.html