2011-09-29 58 views
0

有沒有一種方法可以根據ASCII表將一系列整數轉換爲字符串。我想獲取一個String的ASCII值並將其轉換回一個String。例如,BigInteger根據ASCII碼字符串

97098097=> "aba" 

我真的需要一個有效的方法來取整數並根據其ASCII值將其轉換爲字符串。此方法還必須考慮到一個事實,即有在'9'前面no zero當字符串"aba"具有97098097作爲'a'具有097 ASCII值和字符串"dee"具有100101101一個ASCII值。這意味着並不是每個數字都有一個ASCII值,其數字的數量是三的倍數。

如果您對我正在嘗試做的事有任何誤解,請告訴我。

+1

可能的重複[我希望能夠根據ASCII小數錶轉換爲文本數字](http://stackoverflow.com/questions/7585394/i-want-to-be-able-將數字轉換爲文本按照ascii-decimal-tab) – NullUserException

回答

0

首先,我會在你的代碼中創建一些查找表,所有ascii值和他們的字符串等效。然後取大int並將其轉換爲String。然後用你的bigint字符串的長度來修改3的mod,以確定你是否需要在其前面添加1,2或0。然後從數字前面抓住每3個整數,將其與查找表進行比較,然後將相應的值附加到結果字符串中。

例子:

鑑於97098097 你將它轉換爲:"97098097"

然後你做3國防部導致1的值,所以1爲零需要添加。

追加1零:"097098097"

然後抓住每3從正面和比較,以查找表:

097 -> a,所以result += "a"

098 -> b,所以result += "b"

097 -> a,使result += "a"

以結果爲「aba」結尾

+0

對於這麼簡單的事情來說,工作太多了。 – NullUserException

1

不需要查找表。

while (string.length() % 3 != 0) 
    { 
     string = '0' + string; 
    } 
    String result = ""; 
    for (int i = 0; i < string.length(); i += 3) 
    { 
     result += (char)(Integer.parseInt(string.substring(i, i + 3))); 
    }