Java使用Scanner类如何在同一行读取String和int类型数据
解决方案
你现有的代码本身就已经支持空格分隔的同一行输入:Scanner的next()、nextInt()方法默认以所有空白字符(空格、换行符、制表符等)作为分隔符,直接输入NY 15后回车,prov就会被赋值为NY,tax赋值为15,可以正常运行。
如果你需要强制要求两个值必须在同一行输入,不允许分两行输入,同时加上0-100的数值范围校验,可以参考如下修改后的代码:
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); // 读取完整一行输入,避免跨行读取 String inputLine = in.nextLine(); // 按任意数量空白字符分割输入,兼容多空格分隔场景 String[] inputParts = inputLine.trim().split("\\s+"); // 校验输入参数数量 if (inputParts.length != 2) { System.out.println("输入格式错误,请按「省份 数字」的格式在同一行输入"); return; } String prov = inputParts[0]; int tax; // 校验数字合法性与范围 try { tax = Integer.parseInt(inputParts[1]); if (tax < 0 || tax > 100) { System.out.println("输入的数字需在0-100区间内"); return; } } catch (NumberFormatException e) { System.out.println("第二个输入值必须为合法整数"); return; } // 此处可添加后续业务逻辑 System.out.println("省份:" + prov + ",数值:" + tax); } }
内容的提问来源于stack exchange,提问作者rayan saleh
相关产品推荐
相关产品推荐

