2014-02-23 116 views
1

我解密了一个数据并得到一个BigInt,当我试图将它转换为字符串时,我得到了一些有线字符。如何将BigInteger转换为字符串?

用于获取BigInteger的

BigInteger dec = process.Decrypt(sec); 

代码获得的ByteArray

byte testBy[] = dec.toByteArray(); 

代码转换成字符串

String ss = new String(testBy); 
System.out.println(ss); 

,我尝试这个代码太

代码210

我得到这个输出

=^ö½ß‡k+Éæ‚ûŽ3B‚+…Òæ?&¶?kÛUô—c 

帮助我在这里..

+0

http://www.tutorialspoint.com/java/math/biginteger_tostring_radix.htm –

+1

为什么你需要字节数组?只要使用BigInteger.toString()方法 – vefthym

+0

很确定没有'println(String,String)'方法。另外,'String ss = new String(testBy,“UTF-8”);'是可以接受的。 –

回答

15

的BigInteger有toString()方法,它给出了值的十进制字符串表示。

+0

注意:公共字符串toString(int radix);否则默认值为10 –

+0

@DonRoby,那么我该如何将bigInt转换为原始文本。我的意思是解密文本 – SHiv

+1

Sivashankar,你问你的问题是错的。这显然是一个[XY问题](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)。你不需要一个表示'BigInteger'拥有的数字的'String'。你想要解密的文本。答案是,如果不知道自己的库,我们无法帮助你(解密后的数据可以存储在BigInteger内部,还有另外一些数据真正可以做的事情)。 –

1

致电System.out.println(dec)应正确打印dec的十进制表示形式。

所以只要确保BigInteger dec = process.Decrypt(sec)产生预期的结果。

0

toString()方法将BigInteger转换为String.Actually它将重写Object toString()方法。或直接将BigInteger对象传递给System.out.println(),因为println bydefault取Object.toString()。