1. 程式人生 > >Java中String與二進位制碼的相互轉換

Java中String與二進位制碼的相互轉換

把字串轉成二進位制碼

public class stringTest {
    public static void main(String[] args) {
        String str = "abc";
        String binary = toBinary(str);
        System.out.println(binary);
    }

    public static String toBinary(String str){
        //把字串轉成字元陣列
        char[] strChar=str.toCharArray();
        String result=""
; for(int i=0;i<strChar.length;i++){ //toBinaryString(int i)返回變數的二進位制表示的字串 //toHexString(int i) 八進位制 //toOctalString(int i) 十六進位制 result +=Integer.toBinaryString(strChar[i])+ " "; } return result; } }

結果:abc–>1100001 1100010 1100011

將二進位制碼轉成字串

public class stringTest {
    public static void main(String[] args) {
        String binary = "1100001 1100010 1100011";      
        System.out.println(toString(binary));
    }

    public static String toString(String binary) {
         String[] tempStr=binary.split(" ");
            char[] tempChar=new
char[tempStr.length]; for(int i=0;i<tempStr.length;i++) { tempChar[i]=BinstrToChar(tempStr[i]); } return String.valueOf(tempChar); } //將二進位制字串轉換成int陣列 public static int[] BinstrToIntArray(String binStr) { char[] temp=binStr.toCharArray(); int[] result=new int[temp.length]; for(int i=0;i<temp.length;i++) { result[i]=temp[i]-48; } return result; } //將二進位制轉換成字元 public static char BinstrToChar(String binStr){ int[] temp=BinstrToIntArray(binStr); int sum=0; for(int i=0; i<temp.length;i++){ sum +=temp[temp.length-1-i]<<i; } return (char)sum; } }

結果:1100001 1100010 1100011 –>abc