考虑以下字符串:如何将大型字符串转换为java中的整数?
3132333435363738396162636465666768696a6b6c6d6e6f70
我转换字符串为十六进制,现在我想文件写为十六进制不是一个字符串。我试图将其转换为int,但Integer.parseInt
只能转换为4,如果超出它,它会给出错误。
考虑以下字符串:如何将大型字符串转换为java中的整数?
3132333435363738396162636465666768696a6b6c6d6e6f70
我转换字符串为十六进制,现在我想文件写为十六进制不是一个字符串。我试图将其转换为int,但Integer.parseInt
只能转换为4,如果超出它,它会给出错误。
使用BigInteger,其中一个构造函数需要一个基数。
BigInteger value = new BigInteger(hexString, 16);
您是否试过BigInteger
constructor taking a string and a radix?
BigInteger value = new BigInteger(hex, 16);
示例代码:
import java.math.BigInteger;
public class Test {
public static void main(String[] args) {
String hex = "3132333435363738396162636465666768696a6b6c6d6e6f70";
BigInteger number = new BigInteger(hex , 16);
System.out.println(number); // As decimal...
}
}
输出:
308808885829455478403317837970537433512288994552567292653424
我需要按原样写入文件。 – user2090151 2013-02-20 07:57:01
@ user2090151:我不知道你是什么意思。这是一个数字 - 没有“按原样”这样的事情。你需要以某种方式表示它 - 作为十进制数字或其他。你问如何解析它作为一个数字 - 我已经告诉你如何做到这一点。如果你只是想把十六进制字符串解析成一个* byte *数组,那完全是另一回事了,你应该先问这个问题。 (不要问一个新的问题 - Stack Overflow上有十六进制的解析问题。 – 2013-02-20 08:08:24
尝试:
new BigInteger("3132333435363738396162636465666768696a6b6c6d6e6f70", 16)
这是什么都与挥杆呢? – 2013-02-20 07:44:02