更换
if(scan.hasNextLine()){与
if(scan.hasNext("\p{Alpha}*")){如果使用
hasNextLine扫描仪,则仅检查下一步是否有 东西 ,特别是对于字母或其他物品。
当您使用正则表达式时,在这种情况下
p{Alpha}*,其含义是“零个或多个字母”(但是扫描仪将查找至少一个非空格字符,因此实际上是“1个或多个字母”),扫描仪的行为类似于当您执行相同的操作
hasNextInt()(正在寻找数字)时会执行此操作。
请注意,它将仅接受US-ASCII范围内的字母,因此,仅不带重音符号或北欧字母或类似的字母
a-zA-Z。
另外,请使用
scan.next()而不是读取用户名
nextLine()-尽管您可能想
nextLine()稍后再调用以清理该行的其余部分。如果您用于
nextLine()读取用户名,则字母后面可能有一些不是字母的内容,它将由读取
nextLine()。



