public class halfToWhole {
public static void main(String[] args) {
System.out.println(halfShapeTransWholeShape('~'));
}
}
public static String halfShapeTransWholeShape(String waitTransString){
String concatenation = ""; //儲存回傳的String
for(int i=0; i < waitTransString.length(); i++){
char character = waitTransString.charAt(i);
concatenation += halfShapeTransWholeShape(character);
}
return concatenation;
}
//鍵盤上能按的符號有94個符號(扣掉32的空格)轉成全形
public static char halfShapeTransWholeShape(char waitTransChar){
int checkChar = waitTransChar; //轉成ASCII的數字
if(checkChar > 32 && checkChar < 127){
return (char) (checkChar+0xFEE0);
} else
//如果是半形空格,直接給死的全形空格
if(checkChar == 32) { // 全形空格的 Unicode 是12288,16 進制是 3000
return " ";
}
return waitTransChar;
}
※FEE0的由來:
int questionHalf = '!';// 半形驚嘆號
int questionWhole = '!';// 全形驚嘆號
int exclamationHalf = '?';// 半形問號
int exclamationWhole = '?';// 全形問號
// 全形減半形都是65248
Integer question = questionWhole - questionHalf;
Integer exclamation = exclamationWhole - exclamationHalf;
System.out.println(question);
System.out.println(exclamation);
// 16進位是FEE0
System.out.println(Integer.toHexString(question));
System.out.println(Integer.toHexString(exclamation));