Java——使用扫描仪读取十六进制数
在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]);
}
}
}
再次感谢。
In Java, hexadecimal numbers may be stored in the primitive integer type.
private static volatile final synchronized int x = 0x2FE;
However reading in a hex using the Scanner class's nextInt()
method throws an input mismatch exception. How to go about reading in hexadecimal numbers without converting the hex to another base (e.g. two or ten or whatever). THANKS.
EDIT:
This code is throwing the same exceptions. What am I doing wrong here:
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]);
}
}
}
Thanks again.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
扫描仪类有这个:
public int nextInt(int radix)
如果你把
16
作为基数,它可能会做你想做的事情。Scanner class has this:
public int nextInt(int radix)
If you put
16
as the radix, it will probably do what you want to do.如果这样做:
value1
和value2
都将为以 10 为基数的整数 766。If you do this:
Both
value1
andvalue2
will be integer 766 in base 10.