1. 程式人生 > 其它 >JAVA全形、半形轉換/英文大小寫轉換

JAVA全形、半形轉換/英文大小寫轉換

技術標籤:JAVAjava

全形轉半形:全形空格12288,半形空格32;其他半形(33-126)與全形(65281-65374)均相差65248
	/**
     * 全形轉半形
     *
     * @param input 待處理文字
     * @return 處理結果
     */
    public final static String toDBC(String input) {
        if (input == null) {
            return input;
        }
        char[] c = input.toCharArray
(); for (int i = 0; i < c.length; i++) { if (c[i] == 12288) { c[i] = (char) 32; } else if (c[i] > 65280 && c[i] < 65375) { c[i] = (char) (c[i] - 65248); } } return new String(c); }
大小寫轉換:小寫字母(97-122)與大寫(65-90)均相差32
注:jdk原生toUpperCase()會對其他字母進行轉換,例如α對應Α、β對應Β,故封裝函式針對性處理英文字母
	/**
     * 英文字母轉大寫
     *
     * @param input 待處理文字
     * @return 處理結果
     */
    public final static String toUpperCase(String input) {
        if (input == null) {
            return input;
        }
        char[] c = input.toCharArray();
        for (int i = 0; i < c.length; i++) {
            if
(c[i] >= 97 && c[i] <= 122) { c[i] = (char) (c[i] - 32); } } return new String(c); } public static void main(String[] args) { String str = "測試文字hello, αβ"; System.out.println(str.toUpperCase()); // 返回結果:測試文字HELLO, ΑΒ System.out.println(toUpperCase(str)); // 返回結果:測試文字HELLO, αβ }