范围(无空格):

全角字符unicode编码从65281~65374(十六进制0xFF01 ~ 0xFF5E)
半角字符unicode编码从33~126(十六进制0x21~ 0x7E)

特例:

空格比较特殊,全角为12288(0x3000),半角为 32(0x20)

全角半角转换的间隔 为65248

注:

1. 中文文字永远是全角,只有英文字母、数字键、符号键才有全角半角的概念,一个字母或数字占一个汉字的位置叫全角,占半个汉字的位置叫半角。

2. 引号在中英文、全半角情况下是不同的。

//全角转半角
    public static String fullToHalf(String value){
        if(value==null || "".equals(value)){
            return value;
        }
        char[] cha=value.toCharArray();

        for(int i=0;i<cha.length;i++){
            if(cha[i]==12288){
                cha[i]=(char)32;
            }else if(cha[i]>=65281 && cha[i]<=65374){
                cha[i]=(char)(cha[i]-65248);
            }
        }
        return new String(cha);

    }

    //半角转全角
    public static String  halfToFull(String value){
        if(value==null || "".equals(value)){
            return value;
        }

        char[] cha=value.toCharArray();
        for(int i=0;i<cha.length;i++){
            if(cha[i]==32){
                cha[i]=(char)12288;
            }else if(cha[i]>=33 && cha[i]<=126){
                cha[i]=(char)(cha[i]+65248);
            }
        }
        return new String(cha);

    }