1. 程式人生 > >不用String自帶方法實現大小寫字母轉換

不用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])); } }