不用String自帶方法實現大小寫字母轉換


package pers.redsoft.java.test.base;

/**
 * 大寫英文字符轉換
 * 
 * @author redsoft
 *
 */
public class UpperToLower {

    /**
     * 主方法
     * 
     * @param args
     */
    public static void main(String[] args) {
        // 驗證字母a到A,z到Z的規律
        printCharCode();
        System.out.println("================分割線===============");
        // 由上面的方法得知字母a到A,z到Z的規律爲相差32,對下面大小寫字符串進行全部小寫或者全部大寫的轉換。
        String str = "Hello World !!";
        // 轉爲char數組
        char[] tolower = str.toCharArray();
        // 先拷貝一份char數組用於存放相同長度的字符
        char[] toupper = tolower.clone();
        // 循環字符串的字符
        for (int i = 0; i < tolower.length; i++) {
            // 每一個字符的值
            char point = tolower[i];
            // 判斷是否是大寫的字母,在90和65之間
            if (point <= 90 && point >= 65) {
                // 就轉換爲小寫(加32)
                tolower[i] = (char) (point + 32);
            }
            // 判斷是否是小寫的字母,在97和122之間
            if (point <= 122 && point >= 97) {
                // 就轉換爲大寫(減32)
                toupper[i] = (char) (point - 32);
            }
        }
        // 小寫的char數組轉換爲string字符串
        String strlower = new String(tolower);
        // 大寫的char數組轉換爲string字符串
        String strupper = new String(toupper);
        // 打印小寫字符串
        System.out.println(strlower);
        // 打印大寫字符串
        System.out.println(strupper);
    }

    /**
     * 驗證字母a到A,z到Z的規律
     */
    static void printCharCode() {
        // 爲了測定字母a到A,z到Z的規律,定義這四個字符。
        String aazz = "aAzZ";
        // 將字符串轉爲char數組
        char[] charaz = aazz.toCharArray();
        // 分拆這四個字符
        for (int i = 0; i < charaz.length; i++) {
            char chars = charaz[i];
            System.out.println(chars + " = " + (int) chars);
        }
        // 得出結論a~A相差32,z~Z相差32
        System.out.println("a~A = " + ((int) charaz[0] - (int) charaz[1]));
        System.out.println("z~Z = " + ((int) charaz[2] - (int) charaz[3]));
    }

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