将一串数字转换为十六进制等值

时间:2014-09-05 23:51:42

标签: java

我试过这个

String dataC =  Integer.toHexString(dataB);

但当然这对字符串不起作用......

3 个答案:

答案 0 :(得分: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));

如果您不想假设任何数字限制,可以使用BigInteger

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

答案 1 :(得分:0)

您应该首先将数据字符串转换为int:

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

答案 2 :(得分:0)

因为它是一个长字符串,请尝试

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