JAVA全形、半形轉換/英文大小寫轉換
阿新 • • 發佈:2020-12-15
全形轉半形:全形空格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, αβ
}