如何在同一行输入多个数值(Java Scanner 多值单行输入教程)

发布时间 - 2026-01-03 00:00:00    点击率:

本文讲解如何使用 java 的 scanner 类实现多个数值在同一行输入(如数量与单价并排输入),避免默认换行导致的格式错乱,并提供安全、健壮的输入处理方案。

在 Java 控制台程序中,Scanner.nextInt() 和 Scanner.nextDouble() 等方法不会消费输入末尾的换行符(\n),且它们默认以空白字符(空格、制表符、回车)为分隔符。因此,只要用户在一行内用空格或 Tab 分隔多个值,Scanner 就能正确读取——无需额外换行或特殊处理。

✅ 正确做法:保持 System.out.print() 不换行,引导用户在同一行输入多个值

修改你的代码如下:

System.out.print("Enter the quantities and price of " + phone1 + ": ");
qty = sc.nextInt();     // 用户输入:1000 1399.99 ← 两个值在同一行,用空格分隔
price = sc.nextDouble(); // Scanner 自动跳过中间空白,读取下一个数值

运行效果:

Enter the quantities and price of iPhone 10: 1000 1399.99

⚠️ 重要注意事项:

  • 不要在 nextInt() 后调用 sc.nextLine() 再读 nextDouble() —— 这会误吞掉用户输入的换行符,导致后续输入异常;
  • 确保用户严格按空格/TAB分隔输入(如 10001399.99),否则 nextDouble() 会抛出 InputMismatchException;
  • 更健壮的写法(推荐用于生产环境):统一用 nextLine() 读整行,再用 String.split() 解析:
System.out.print("Enter the quantities and price of " + phone1 + ": ");
String line = sc.nextLine().trim();
String[] parts = line.split("\\s+", 2); // 最多切两段,防止价格含空格时报错
if (parts.length >= 2) {
    qty = Integer.parseInt(parts[0]);
    price = Double.parseDouble(parts[1]);
} else {
    System.err.println("Error: Please enter quantity and price separated by space.");
}

? 小技巧:若想提升用户体验,可在提示语末尾加一个显眼分隔符,例如:

System.out.print("Enter quantity and price for " + phone1 + " (e.g., 1000 1399.99): ");

总结:Java Scanner 天然支持单行多值输入,关键在于理解其以空白符分词的机制,并合理设计提示语与输入校验逻辑——既简洁高效,又具备容错能力。


# java  # iphone 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程  Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性  Laravel用户认证怎么做_Laravel Breeze脚手架快速实现登录注册功能  Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理  Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧  Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录  Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】  如何自定义建站之星网站的导航菜单样式?  如何在万网开始建站?分步指南解析  如何在建站之星网店版论坛获取技术支持?  Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】  Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】  网站制作免费,什么网站能看正片电影?  中山网站制作网页,中山新生登记系统登记流程?  laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法  Android中AutoCompleteTextView自动提示  Laravel集合Collection怎么用_Laravel集合常用函数详解  如何用PHP工具快速搭建高效网站?  打造顶配客厅影院,这份100寸电视推荐名单请查收  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  Laravel Session怎么存储_Laravel Session驱动配置详解  Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】  如何构建满足综合性能需求的优质建站方案?  Win11怎么设置默认图片查看器_Windows11照片应用关联设置  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  香港网站服务器数量如何影响SEO优化效果?  javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】  php json中文编码为null的解决办法  微信h5制作网站有哪些,免费微信H5页面制作工具?  Laravel API路由如何设计_Laravel构建RESTful API的路由最佳实践  香港服务器建站指南:免备案优势与SEO优化技巧全解析  laravel怎么在请求结束后执行任务(Terminable Middleware)_laravel Terminable Middleware请求结束任务执行方法  java获取注册ip实例  奇安信“盘古石”团队突破 iOS 26.1 提权  Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优  Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】  如何用AWS免费套餐快速搭建高效网站?  Laravel路由怎么定义_Laravel核心路由系统完全入门指南  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比  动图在线制作网站有哪些,滑动动图图集怎么做?  如何选择可靠的免备案建站服务器?  javascript中对象的定义、使用以及对象和原型链操作小结  如何在万网自助建站平台快速创建网站?  Laravel如何使用Blade模板引擎?(完整语法和示例)  Laravel如何编写单元测试和功能测试?(PHPUnit示例)  SQL查询语句优化的实用方法总结  php静态变量怎么调试_php静态变量作用域调试技巧【解答】  如何快速启动建站代理加盟业务?  如何用低价快速搭建高质量网站?