JAVA全角字符转换为半角字符

来源:互联网 发布:java并发 编辑:程序博客网 时间:2024/05/16 12:45
在做Swing Jtextfile的时候,发现输入法默认都是全角字符,改半角很麻烦,因此找了一种全角转半角的方法,如下:
    /**     * 全角字符串转换半角字符串,如果是全角就转成半角,如果是半角则不变     *     * @param fullWidthStr     *            非空的全角字符串或者半角字符串     * @return 半角字符串     */public static String fullWidth2halfWidth(String fullWidthStr) {        if (null == fullWidthStr || fullWidthStr.length() <= 0) {            return "";        }        char[] charArray = fullWidthStr.toCharArray();        //对全角字符转换的char数组遍历        for (int i = 0; i < charArray.length; ++i) {            int charIntValue = (int) charArray[i];            //如果符合转换关系,将对应下标之间减掉偏移量65248;如果是空格的话,直接做转换            if (charIntValue >= 65281 && charIntValue <= 65374) {                charArray[i] = (char) (charIntValue - 65248);            } else if (charIntValue == 12288) {                charArray[i] = (char) 32;            }        }        return new String(charArray);    }    

转换原理:

1.半角字符是从33开始到126结束
2.与半角字符对应的全角字符是从65281开始到65374结束
3.其中半角的空格是32.对应的全角空格是12288
半角和全角的关系很明显,除空格外的字符偏移量是65248(65281-33 = 65248)


0 0
原创粉丝点击