我有一些自动生成的ID表示为HEX字符串。我想找到接下来的1000个值。例如,假设我有以下字符串
String keyFrom = "536a11dae4b062cab536549d";
如何从以下java代码中获取String?
536a11dae4b062cab536549e
536a11dae4b062cab536549f
536a11dae4b062cab53654a0
536a11dae4b062cab53654a1
536a11dae4b062cab53654a2 ... etc.
答案 0 :(得分:2)
使用BigInteger如下
BigInteger decimal = new BigInteger("536a11dae4b062cab536549d",16);
for ( int i=0;i<1000;i++){
decimal = decimal.add(BigInteger.ONE);
System.out.println(decimal.toString(16));
}
答案 1 :(得分:0)
将您的String
转换为BigInteger
并将其递增:
BigInteger bigInt = new BigInteger(hexString, 16);
for(int i = 0 ; i < 1000 ; ++i) {
// do something with bigInt...
System.out.println(bigInt.toString(16));
bigInt = bigInt.add(BigInteger.ONE);
}
答案 2 :(得分:0)
编辑:如果您使用超过~8个字符的十六进制字符串,请使用上面使用BigInteger的解决方案。
使用Integer#parseInt(String,16)将十六进制字符串解析为整数,向其中添加一个,然后使用Integer#toHexString将其转换回十六进制。
String hexString = "A953CF";
// 16 sepcifies the string to be in base 16, hexadecimal
int hexAsInt = Integer.parseInt(hexString, 16);
hexAsInt += 6; // Add 6
String newHexString = Integer.toHexString(hexAsInt);
System.out.println(newHexString);
--> A953D4