2011-09-29 46 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))); 
    }