在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]);
}
}
}
再次感谢。
答案 0 :(得分:10)
扫描仪课程有这个:
public int nextInt(int radix)
如果你把16
作为基数,它可能会做你想做的事。
答案 1 :(得分:3)
如果你这样做:
int value1 = 0x2FE;
int value2 = new Scanner("2FE").nextInt(16);
基数10中value1
和value2
都是整数766。