use*_*362 0 java hex long-integer
嗨我正在尝试构建一个随机的16个字符十六进制,这样做我尝试了 Long.toHexString(new Random().nextLong()我的假设是它将始终返回一个16字符串,我是对的吗?(一旦它返回15个字符)
看一下javadocs toHexString(long i)(强调我的).
public static String toHexString(long i)返回long参数的字符串表示形式,作为基数为16的无符号整数.
如果参数为负,则unsigned long值为参数加2 64 ; 否则,它等于参数.该值转换为十六进制(基数为16)的ASCII数字字符串,没有额外的前导0.如果无符号幅度为零,则由单个零字符'0'('\ u0030')表示; 否则,无符号幅度表示的第一个字符将不是零字符.
事实证明,它不会总是 16个字符长.但是,如果您愿意,可以使用零填充:
import java.util.Random;
class Main {
public static void main(String[] args) {
String hex16Chars = String.format("%016X", new Random().nextLong());
System.out.println(hex16Chars + ", len: " + hex16Chars.length());
}
}
Run Code Online (Sandbox Code Playgroud)
你会看到长度总是如预期的那样是16.
事实证明,偷看文档确实有帮助!:)
提到有问题的方法的Javadoc应该是你的第一个停靠点:
该值转换为十六进制(基数为16)的ASCII数字字符串,没有额外的前导0
所以不,它不会总是16个字符.
但是,您可以使用以下方法打印带有前导零的16字符大写十六进制字符串:
String.format("%016X", longValue)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3436 次 |
| 最近记录: |