2014-09-05 46 views

回答

2

toHexString需要整数作为参数,因此,如何改变一串数字先整数?

String dataC = Integer.toHexString(Integer.parseInt(dataB)); 

(更可读代码)

int dataBInteger = Integer.parseInt(dataB); 
String dataC = Integer.toHexString(dataBInteger); 

如果从字符串值在long(-9223372036854775808; 9223372036854775807)范围可以使用

String dataC = Long.toHexString(Long.parseLong(dataB)); 

如果你不想承担任何责任位数的IMIT可以使用BigInteger

BigInteger bi = new BigInteger(dataB); 
String dataC = bi.toString(16); 
+0

这是长长的一串数字 – user3293056 2014-09-06 00:09:27

+0

@ user3293056我可以知道多长时间吗?它是否有预定义的限制? – Pshemo 2014-09-06 00:09:54

+0

几千我猜。可能更晚。 – user3293056 2014-09-06 00:15:46

0

你应该先转换数据B字符串为int:

int number = Integer.parseInt(dataB); 
String dataC = "0x" + Integer.toHexString(number); 
+0

我试过这个,但是当我打印结果时,我没有得到十六进制只是正常的整数? – user3293056 2014-09-06 00:03:24

0

由于这是一个很长的字符串,尝试

String hex = new BigInteger(dec).toString(16);