2010-12-11 71 views
7

如何將字符串轉換爲位零和位的流 我做了什麼,然後將字符串轉換爲字符數組,然後使用方法 調用forDigit(char,int),但它不會給我字符作爲0和1的流0 您可以幫助請。 也我怎麼可以做一個字符反向位。 pleaes告訴我一個樣品如何將字符串轉換爲java中的位流

回答

3

我想這一個..

public String toBinaryString(String s) { 

    char[] cArray=s.toCharArray(); 

    StringBuilder sb=new StringBuilder(); 

    for(char c:cArray) 
    { 
     String cBinaryString=Integer.toBinaryString((int)c); 
     sb.append(cBinaryString); 
    } 

    return sb.toString(); 
} 
+0

精彩,我喜歡你回答它與我 – Bob2 2010-12-11 14:50:02

+0

的問題是,不是所有的字符位的長度相同設置,所以你不能就能夠將此二進制譯碼因爲你不知道這些位有多長。 – 2010-12-11 17:21:27

+0

謝謝鮑勃..! @Peter Lawrey每個字符都被編碼爲長度爲7的二進制字符串。所以我猜...可以處理.. – 2010-12-11 20:07:53

0
String strToConvert = "abc"; 
byte [] bytes = strToConvert.getBytes(); 
StringBuilder bits = new StringBuilder(bytes.length * 8); 
System.err.println(strToConvert + " contains " + bytes.length +" number of bytes"); 
for(byte b:bytes) { 
    bits.append(Integer.toString(b, 2)); 
} 

System.err.println(bits); 
char [] chars = new char[bits.length()]; 
bits.getChars(0, bits.length(), chars, chars.length); 
10

,如果你走兩步它的最簡單的。字符串支持從字符串轉換爲字節[],而BigInteger可以將字節[]轉換爲二進制文本並返回。

String text = "Hello World!"; 
System.out.println("Text: "+text); 

String binary = new BigInteger(text.getBytes()).toString(2); 
System.out.println("As binary: "+binary); 

String text2 = new String(new BigInteger(binary, 2).toByteArray()); 
System.out.println("As text: "+text2); 

打印

Text: Hello World! 
As binary: 10010000110010101101100011011000110111100100000010101110110111101110010011011000110010000100001 
As text: Hello World! 
相關問題