Scanner用于解析文本,Scanner#nextByte()方法尝试匹配由数字(有符号或无符号)组成的输入,以将其转换为等效的单字节值。
它不是相反的,它不会读取字母并返回其字节值。
如果您想知道Scanner尝试匹配的内容,请查看方法hasNextByte()(检查是否可以读取字节)。它试图匹配这种模式:
"(([-+]?(((((?i)[0123456789]|\p{javaDigit})++)|(\p{javaDigit}&&[^0]?((?i)[0123456789]|\p{javaDigit})?(\ ((?i)[0123456789]|\p{javaDigit})((?i)[0123456789]|\p{javaDigit})((?i)[0123456789]|\p{javaDigit}))+)))))|(((((?i)[0123456789]|\p{javaDigit})++)|(\p{javaDigit}&&[^0]?((?i)[0123456789]|\p{javaDigit})?(\ ((?i)[0123456789]|\p{javaDigit})((?i)[0123456789]|\p{javaDigit})((?i)[0123456789]|\p{javaDigit}))+)))|(\Q-\E((((?i)[0123456789]|\p{javaDigit})++)|(\p{javaDigit}&&[^0]?((?i)[0123456789]|\p{javaDigit})?(\ ((?i)[0123456789]|\p{javaDigit})((?i)[0123456789]|\p{javaDigit})((?i)[0123456789]|\p{javaDigit}))+)))"
所以你看到它只查找数字。