天天看點

char,Character,int,字元及編碼日記char,Character,int,字元及編碼日記

char,Character,int,字元及編碼日記

public class Test {
    public static void main(String[] args) {
        char c = 'a';
        Character ch = new Character(c);
        int code = c;
        
        System.out.print(c + " ");//列印出字元
        System.out.print(ch + " ");//列印出字元
        System.out.print(ch.charValue() + " ");//列印出字元
        System.out.println(code);//列印出編碼
    }
}           

這個代碼在IDE中編譯運作沒有問題,如果在cmd下,會出錯:編碼GBK的不可映射字元。這個時候在編譯時需要加上-encoding utf-8參數。

如果字元+1,可以變成下一個字元,編碼和字元顯示都是正确的,代碼如下:

public class Test {
    public static void main(String[] args) {
        char a = 'a';
        int code = a;//不需要強制轉換
        char c = (char)(code + 1);//需要強制轉換
        Character ch = new Character(c);
        
        System.out.print(c + " ");//列印出字元
        System.out.print(ch + " ");//列印出字元
        System.out.print(ch.charValue() + " ");//列印出字元
        System.out.println(code);//列印出編碼
    }
}           

如果想吧字元‘0’~‘9’加密位新的數字,每位字元+1,比如‘8’變‘9’,‘9’變‘0’,代碼如下:

public class Test {
    public static void main(String[] args) {
        char a = '0';
        int code = a;
        int encode = (code + 1 - 48) % 10 + 48;
        char c = (char)encode;
        
        System.out.print(c + " ");//列印出字元
        System.out.println(encode);//列印出編碼
    }
}