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