参考链接:http://www.cnblogs.com/Ant-soldier/p/6373766.html
1.通过字符编码的范围进行判断.
ascii编码对照http://tool.oschina.net/commons?type=4
2.通过正则表达式来进行判断
// 纯半角,包含有数字,字母,特殊符号,空格,汉字
String test1 = "[email protected]#$%^& 幽雨";
char[] chars_test1 = test1.toCharArray();
for (int i = 0; i < chars_test1.length; i++) {
String temp = String.valueOf(chars_test1[i]);
// 判断是全角字符
if (temp.matches("[^\\x00-\\xff]")) {
System.out.println("全角 " + temp);
}
// 判断是半角字符
else {
System.out.println("半角 " + temp);
}
}测试结果
去除字符串中汉字
String ss = "waeaeaea我们women在这里";
System.out.println(ss.replaceAll("[\u4e00-\u9fa5]", ""));测试结果如下:不管是全角还是半角下的汉字
或者是截取出字符串中的汉字
String ss = "waeaeaea我们women在这里";
char[] chars_ss = ss.toCharArray();
String test = "";
for (int i = 0; i < chars_ss.length; i++) {
String temp = String.valueOf(chars_ss[i]);
// 判断是汉字
if (temp.matches("[\u4e00-\u9fa5]")) {
test += temp;
}
}
System.out.println(test);测试结果如下:
使用字符的unicode码进行判断
// 纯半角,包含有数字,字母,特殊符号,空格,汉字
String test1 = "[email protected]#$%^& 幽雨";// 首先将汉字用空格替换掉
test1 = test1.replaceAll("[\u4e00-\u9fa5]", "");char[] chars_test1 = test1.toCharArray();
for (int i = 0; i < chars_test1.length; i++) {
int charValue = (int) chars_test1[i];
// 判断是全角字符
if (charValue >= 65281 && charValue <= 65374 || charValue == 12288) {
System.out.println("全角 " + (char) charValue);
}
// 判断是半角字符
else if (charValue >= 33 && charValue <= 126 || charValue == 32) {
System.out.println("半角 " + (char) charValue);
}
}测试结果如下: