不用String自帶方法實現大小寫字母轉換
阿新 • • 發佈:2019-01-09
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]));
}
}