觉得是不是可以这样,中英文区的编码范围不同,是不是可以获取每个字符的编码,用大于小于某个值来判断是中文还是英文
可参考以下程序:
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
String str1 = "中国";
String str2 = "english";
char[] c1 = str1.toCharArray();
char[] c2 = str2.toCharArray();
for (int i = 0; i < c1.length; i++) {
int num = c1[i];
String numstr = Integer.toBinaryString(num);
System.out.println(numstr);
if (numstr.length() > 8) {
System.out.println("汉字");
} else {
System.out.println("英文");
}
}
for (int i = 0; i < c2.length; i++) {
int num = c2[i];
String numstr = Integer.toBinaryString(num);
System.out.println(numstr);
if (numstr.length() > 8) {
System.out.println("汉字");
} else {
System.out.println("英文");
}
}
}
}
我觉得不太可能 楼上的几种方法太片面~~如果我输入的中英混合呢?
感觉 如果是输入特定的值 可以用if else判断一下 输入其他都为非法字符
如果不是特定字符 可以尝试楼上的几个方法 但需要补充的是用charat等字符串处理方法 多重判断一下
只能提供个思路 希望对您有所帮助
中文区间:\u4e00-----\u9fa5,十六进制,
可以定义两个字符 ,看下两端是什么字
16进制
判断ASC码 我觉得所有中文应该都在一个ASC码区间中