2012-01-23 11 views
1

現在、私は値 "0100100001101001"(これは単語 'Hi'のバイナリです)の文字列を持っています。 Convert A String (like testing123) To Binary In JavaバイナリをJavaの文字列値に変換します

すべてのヘルプははるかに高く評価されるだろう:私は、私が上で見つけ

String s = "Hi"; 
byte[] bytes = s.getBytes(); 
StringBuilder binary = new StringBuilder(); 
for (byte b : bytes) 
{  
    int val = b;  
    for (int i = 0; i < 8; i++)  
    {   
     binary.append((val & 128) == 0 ? 0 : 1);   
     val <<= 1;  
    }   
} 
s = binary.toString(); 

を使用し、その文字列を取り、単語「こんにちは」に戻ってそれを変換する方法を見つけ出すために

をしようとしています。前もって感謝します。

+6

* "" 0100100001101001" を(これは単語 'こんにちは' のバイナリである)」* ***どのような文字セットで***(はい、私は知っている、ASCII?他のほとんどの人は、 "H"と "私"がそれらの間でかなり共通していることが起こりますが、その点が立っているからです。 –

+0

あなたがしたことを元に戻すことはできません。 – Ingo

答えて

2

のような何か...さまざまな

BigInteger val = new BigInteger("0100100001101001", 2); 
String hi = new String(val.toByteArray()); 
+3

+1バイトを文字列に変換するときは、エンコーディング指定を含めることが適切な場合があります。例: 'string hi = new String(val.toByteArray()、" UTF-8 ");'。バイトオーダリングという小さな問題もありますが、OPはこれで自分自身で動作します。 –

1

別の解決策、。キャスト(char)を使用します。バイナリStringするsしてください:

String result = ""; 
for (int i = 0; i < s.length(); i += 8) { 
    result += (char) Integer.parseInt(s.substring(i, i + 8), 2); 
} 
関連する問題