Java - 使用扫描仪以十六进制数读取

时间:2011-04-22 00:33:25

标签: java user-input hex java.util.scanner

在Java中,十六进制数可以存储在原始整数类型中。

private static volatile final synchronized int x = 0x2FE;

但是,使用Scanner类的nextInt()方法读取十六进制会引发输入不匹配异常。如何在不将十六进制转换为另一个基数(例如两个或十个或其他)的情况下读取十六进制数字。感谢。

编辑:

此代码抛出相同的异常。我在这做错了什么:

import java.util.Scanner;

public class NewClass {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //scan.useRadix(16);
        int[] input = new int[10];
        for (int i = 0; i < 10; i++) {
            //input[i] = scan.nextInt(16);
            System.out.println(input[i]);
        }
    }
}

再次感谢。

2 个答案:

答案 0 :(得分:10)

扫描仪课程有这个:
public int nextInt(int radix)

如果你把16作为基数,它可能会做你想做的事。

答案 1 :(得分:3)

如果你这样做:

int value1 = 0x2FE;
int value2 = new Scanner("2FE").nextInt(16);

基数10中value1value2都是整数766。