如何通过Scanner.useRadix()在读取控制台输入时自动识别并解析十六进制或二进制数据?
- 内容介绍
- 相关推荐
本文共计581个文字,预计阅读时间需要3分钟。
使用Scanner类的useRadix方法可以自动按指定进制解析输入的整数,无需手动调用parseInt方法。此功能只影响具有进制感知的方法,如nextByte、nextInt、nextLong等,对next或nextLine方法无效。必须在读取前设置。
设置进制后直接读取十六进制数
调用 useRadix(16) 后,nextInt() 会把输入(如 "FF"、"a1"、"0x1F")当作十六进制解析——注意:Scanner 默认不识别 "0x" 前缀,输入需为纯十六进制数字(如 "FF"),否则抛出 InputMismatchException。
本文共计581个文字,预计阅读时间需要3分钟。
使用Scanner类的useRadix方法可以自动按指定进制解析输入的整数,无需手动调用parseInt方法。此功能只影响具有进制感知的方法,如nextByte、nextInt、nextLong等,对next或nextLine方法无效。必须在读取前设置。
设置进制后直接读取十六进制数
调用 useRadix(16) 后,nextInt() 会把输入(如 "FF"、"a1"、"0x1F")当作十六进制解析——注意:Scanner 默认不识别 "0x" 前缀,输入需为纯十六进制数字(如 "FF"),否则抛出 InputMismatchException。

