2014-02-23 114 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()。