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]));
}
}
不用String自帶方法實現大小寫字母轉換
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.