You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 02:48:02