Java 读取包含字母的十六进制值
我正在从以下文件中读取值Java 读取包含字母的十六进制值,java,hex,Java,Hex,我正在从以下文件中读取值 02020003 03020004 01000000 0000000A 00000000 使用以下代码: public static void loader(String file) { try{ Scanner sc = new Scanner(new File(file)); for(int i = 0; sc.hasNextInt() ; ++i){ Memory[i] = sc.nextInt(
02020003
03020004
01000000
0000000A
00000000
使用以下代码:
public static void loader(String file)
{
try{
Scanner sc = new Scanner(new File(file));
for(int i = 0; sc.hasNextInt() ; ++i){
Memory[i] = sc.nextInt(16);
}
}catch(Exception e) {
System.out.println("Cannot open file");
System.exit(0);
}
}
代码正确读取文件中的前3个值,但一旦接近字母(如第4行中的字母),它就会一直将其存储为0
为什么会发生这种情况?您应该使用
hasNextInt(int radix)
对于put基数
16
可以检查hasnetint()
,但使用nextInt(16)
。“你觉得有什么不对吗?”SotiriosDelimanolis谢谢,我明白我所做的wrong@SotiriosDelimanolis我没有单独问一个问题,而是做了一个跟进,当得到一个十六进制值时,我得到了30000,而我只想要3。我该怎么做?@AlexaVega你什么意思?要十进制吗?@KickButtowski No 3是十六进制值,但打印为30000