JFW日常總結 -- Java篇 -- 全角半角互轉換

1. 半角轉全角

public String toMultiByte(String str) {

        final char DBC_CHAR_START = 33; // 半角開始位!
        final char DBC_CHAR_END = 126; // 半角結束位~
        final int CONVERT_STEP = 65248; // 全角半角轉換間隔
        final char SBC_SPACE = 12288; // 全角空格 12288
        final char DBC_SPACE = ' '; // 半角空格

        char[] cha = str.toCharArray();
        for (int i = 0; i < cha.length; i++) {
            if (cha[i] == DBC_SPACE) {
                cha[i] = SBC_SPACE;
            } else if (cha[i] >= DBC_CHAR_START && cha[i] <= DBC_CHAR_END) {
                cha[i] = (char) (cha[i] + CONVERT_STEP);
            }
        }
        return new String(cha);
    }

2. 全角轉半角

public String toSingleByte(String str) {
        final char SBC_CHAR_START = 65281; // 全角開始位!
        final char SBC_CHAR_END = 65374; // 全角結束位~
        final int CONVERT_STEP = 65248; // 全角半角轉換間隔
        final char SBC_SPACE = 12288; // 全角空格 12288
        final char DBC_SPACE = ' '; // 半角空格
        
        char[] charArray = str.toCharArray();
        for (int i = 0; i < charArray.length; i++) {
            if (charArray[i] == SBC_SPACE) {
                charArray[i] = DBC_SPACE;
            } else if (charArray[i] >= SBC_CHAR_START && charArray[i] <= SBC_CHAR_END) {
                charArray[i] = (char) (charArray[i] - CONVERT_STEP);
            } else {
            }
        }
        return new String(charArray);
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章