2012-01-23 42 views
1

目前,我有一個字符串值爲「0100100001101001」(這是對「Hi」字的二進制)。我試圖找出如何利用該字符串,並將其轉換回我用在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(); 

單詞「你好」

上找到: Convert A String (like testing123) To Binary In Java

任何幫助將不勝感激。提前致謝。

+6

*「」 0100100001101001" (這是二進制的字‘你好’)「* ***在設定什麼字符***(是的,我知道,ASCII和其他人,因爲它發生了* H和i在他們之間相當普遍,但是這個觀點是站得住腳的。) –

+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)鑄造。就拿s是二進制String

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