貌似在昨天,偶看了Hmilyld博里的一篇日志叫漢字轉換為二進制的小工具,一個很不錯的工具!
看著看著,偶就手癢了,于是我也寫了一個二進制與任意字符互轉小程序,8過米界面哈!
代碼很少

源代碼如下:

public class StrBinaryTurn {
    
//將字符串轉換成二進制字符串,以空格相隔
    public String toBinary(String str){
        
char[] strChar = str.toCharArray();
        String result 
= "";
        
for(int i = 0; i < strChar.length; i++){
            
            result 
+= Integer.toBinaryString(strChar[i]) + " ";
        }

        
return result;
        
    }

    
//將二進制字符串轉換成Unicode字符串
    public String toStr(String binStr){
        String[] tempStr 
= StrToStrArray(binStr);
        
char[] tempChar = new char[tempStr.length];
        
for(int i = 0; i < tempStr.length; i++){
            tempChar[i] 
= toChar(tempStr[i]);
        }

        
return String.valueOf(tempChar);
    }

    
//將二進制字符串轉換為char
    private char toChar(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;
        
    }

    
//將初始二進制字符串轉換成字符串數組,以空格相隔
    private String[] StrToStrArray(String str){
        
return str.split(" ");
    }

    

    
//將二進制字符串轉換成int數組
    private 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 void main(String[] args){
        
        StrBinaryTurn cTob 
= new StrBinaryTurn();
        System.out.println(cTob.toBinary(
"橘子,好吃!aaa"));
        System.out.println();
        System.out.println(cTob.toBinary(
"999111"));
        System.out.println();
        System.out.println(cTob.toBinary(
"What a nice day!"));
        System.out.println();
        System.out.println(cTob.toBinary(
"^@^ - -! ()★"));
        
        System.out.println();
        System.out.println();
        
        System.out.println(cTob.toStr(
"110101001011000 101101101010000 " +
                
"1111111100001100 101100101111101 " +
                
"101010000000011 1111111100000001 " +
                
"1100001 1100001 1100001 "));
        System.out.println(cTob.toStr(
"111001 111001 111001 " +
                
"110001 110001 110001"));
        System.out.println(cTob.toStr(
"1010111 1101000 1100001 " +
                
"1110100 100000 1100001 100000 1101110 " +
                
"1101001 1100011 1100101 100000 1100100 " +
                
"1100001 1111001 100001 "));
        System.out.println(cTob.toStr(
"1011110 1000000 1011110 " +
                
"100000 101101 100000 101101 100001 100000 " +
                
"1111111100001000 1111111100001001 10011000000101 "));
    }

}


輸出結果:

110101001011000 101101101010000 1111111100001100 101100101111101 101010000000011 1111111100000001 1100001 1100001 1100001

111001 111001 111001 110001 110001 110001

1010111 1101000 1100001 1110100 100000 1100001 100000 1101110 1101001 1100011 1100101 100000 1100100 1100001 1111001 100001

1011110 1000000 1011110 100000 101101 100000 101101 100001 100000 1111111100001000 1111111100001001 10011000000101


橘子,好吃!aaa
999111
What a nice day!
^@^ - -! ()★





what the hell is going on ??!!