过去几个小时,这一直困扰着我。 我有一个长字符串,我想将其转换为字节数组。 我也希望保留前导零。 尝试过DatatypeConverter& BigInteger方法似乎无法获得正确的结果。 这是一个字节数组(十六进制字节值)。
byte[] array = str.getBytes();
这似乎也不起作用,所有这些方法我似乎得到了字符串的十进制表示。我需要它是十六进制。
这就是我现在正在使用的内容:
String line;
line = file.readLine();
long seq = Long.parseLong(line);
String hexx = Long.toHexString(seq);
byte[] out = hexx.getBytes();
BTW,我使用BufferdReader进行输入,使用RandomAccessFile进行输出。 任何帮助将不胜感激。
答案 0 :(得分:1)
好的,从一个基数转换为另一个基数。天哪!
String str = ...
int fromRadix = ...
int toRadix = ...
String out = new BigInteger(str, fromRadix).toString(toRadix);
例如,要转换十进制数" 12345"到十六进制:
String str = "12345";
int fromRadix = 10;
int toRadix = 16;
String out = new BigInteger(str, fromRadix).toString(toRadix);
// yields "3039"
走开! :P
答案 1 :(得分:0)
好的,我想我已经通过使用BigInteger和它的toByeArray方法解决了这个问题。
BigInteger linenum = new BigInteger(line,10);
writer.write(linenum.toByteArray());
实际上是简单的解决方案,感谢您的努力。