1、根据字节和字符的长度是否相等判断字符串是纯中文还是纯英文
- public class test {
- public static void main(String[] args) {
- String test = "aa";
- byte []bytes = test.getBytes();
- int i = bytes.length;//i为字节长度
- int j = test.length();//j为字符长度
- System.out.println(i+" "+j);
- }
- }
2、用正则表达式来检验
1、判断输入类型的最好办法是正则表达式校验
2、确定中文文字的unicode范围[\u4E00-\u9FA5]
3、编写正则表达式[\u4E00-\u9FA5]+,利用String.matches()方法判断输入值是否符合
3、判断字符是否为中文 未验证
public class ChineseDistinguisher {
// GENERAL_PUNCTUATION 判断中文的"号
// CJK_SYMBOLS_AND_PUNCTUATION 判断中文的。号
// HALFWIDTH_AND_FULLWIDTH_FORMS 判断中文的,号
public static boolean isChinese(char c) {
Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);
if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS
|| ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS
|| ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A
|| ub == Character.UnicodeBlock.GENERAL_PUNCTUATION
|| ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION
|| ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS) {
return true;
}
return false;
}
public static void main(String[] args) {
System.out.println(isChinese('好'));
System.out.println(isChinese('A'));
}
}