java处理全⾓半⾓字符问题
1、全⾓:指⼀个字符占⽤两个标准字符位置。
汉字字符和规定了全⾓的英⽂字符及国标GB2312-80中的图形符号和特殊字符都是全⾓字符。⼀般的系统命令是不⽤全⾓字符的,只是在作⽂字处理时才会使⽤全⾓字符。
2、半⾓:指⼀字符占⽤⼀个标准的字符位置。
通常的英⽂字母、数字键、符号键都是半⾓的,半⾓的显⽰内码都是⼀个字节。在系统内部,以上三种字符是作为基本代码处理的,所以⽤户输⼊命令和参数时⼀般都使⽤半⾓。
3、全⾓与半⾓各在什么情况下使⽤?
全⾓占两个字节,半⾓占⼀个字节。
java语言使用的字符码集是半⾓全⾓主要是针对标点符号来说的,全⾓标点占两个字节,半⾓占⼀个字节,⽽不管是半⾓还是全⾓,汉字都还是要占两个字节。
在编程序的源代码中只能使⽤半⾓标点(不包括字符串内部的数据)
在不⽀持汉字等语⾔的计算机上只能使⽤半⾓标点(其实这种情况根本就不存在半⾓全⾓的概念)
对于⼤多数字体来说,全⾓看起来⽐半⾓⼤,当然这不是本质区别了。
4、全⾓和半⾓的区别
全⾓就是字母和数字等与汉字占等宽位置的字。半⾓就是ASCII⽅式的字符,在没有汉字输⼊法起做⽤的时候输⼊的字母数字和字符都是半⾓的。
在汉字输⼊法出现的时候,输⼊的字母数字默认为半⾓,但是标点则是默认为全⾓,可以通过⿏标点击输⼊法⼯具条上的相应按钮来改变。
5、关于“全⾓”和“半⾓”:
全⾓:是指中GB2312-80(《信息交换⽤汉字编码字符集·基本集》)中的各种符号。
半⾓:是指英⽂件ASCII码中的各种符号。
全⾓状态下字母、数字符号等都会占两个字节的位置,也就是⼀个汉字那么宽,半⾓状态下,字母数字符号⼀般会占⼀个字节,也就是半个汉字的位置,全⾓半⾓对汉字没有影响。
说了那么多,我们就看下在java编程语⾔中如何来判断字符串中的全⾓半⾓符号。
有两种⽅式可以判断:
1:通过正则表达式来进⾏判断  [^\\x00-\\xff]
2: 通过字符编码的范围进⾏判断.
有关字符编码的范围介绍如下:
我们可以编写⼀个测试⽤例输出所有的字符编码。
public static void main(String[] args) {
for (int i = Character.MIN_VALUE; i <= Character.MAX_VALUE; ++i) {
System.out.println(i + "    " + (char)i);
}
}
正则表达式处理:[^\\x00-\\xff]
String strReg ="azAZ12 你好!! (())你好azAZ12 !()";        char[] chars = CharArray();
for (int i = 0; i < chars.length; i++) {
String temp = String.valueOf(chars[i]);
// 判断是全⾓字符
if (temp.matches("[^\\x00-\\xff]")) {
System.out.println("全⾓  " + temp);
}
// 判断是半⾓字符
else {
System.out.println("半⾓    " + temp);
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。