news 2026/6/12 8:04:54

课后习题:第九章

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
课后习题:第九章

一、题目描述

本次编程练习要求使用Scanner类解析字符串 “数学 87 分,物理 76 分,英语 96 分”,从中提取三科成绩数据,并计算出总成绩与平均成绩,最终输出结果。


二、解题思路

  1. 核心问题分析:题目给出的字符串中混合了中文、数字和标点符号,直接截取或分割会比较麻烦。核心需求是从混杂文本中精准提取出三个整数成绩。
  2. 技术选型:选择使用Scanner类的useDelimiter()方法,通过正则表达式设置分隔符,一次性过滤掉所有非数字字符,直接读取分数。
  3. 步骤拆解
    • 定义原始成绩字符串。
    • 创建Scanner对象并设置分隔符为 “非数字字符”。
    • 依次读取三科成绩并保存到变量中。
    • 计算总成绩和平均成绩。
    • 输出各科成绩、总成绩和平均成绩。

三、完整代码

四、代码逐段解析

  1. 导入类与定义类import java.util.Scanner;导入Scanner工具类,用于文本解析。public class Score定义了程序的主类Score,类名与文件名保持一致。
  2. 主方法入口public static void main(String[] args)是 Java 程序的入口方法,所有代码逻辑都写在这个方法内。
  3. 定义原始字符串String Str = "数学87分,物理76分,英语96分";定义了需要解析的原始成绩字符串。
  4. 创建 Scanner 并设置分隔符Scanner sc = new Scanner(Str).useDelimiter("[^0-9]+");创建Scanner对象,并设置正则分隔符[^0-9]+,该表达式表示 “匹配一个或多个非数字字符”,这样所有文字和标点都会被当作分隔符处理。
  5. 提取成绩数据通过三次sc.nextInt()方法,依次读取并存储数学、物理、英语三科的成绩到变量中。
  6. 计算总成绩与平均分int total = math + physics + english;计算三科成绩的总和。double average = total / 3.0;计算平均成绩,使用3.0而非3,避免整数除法导致的精度丢失。
  7. 输出结果使用System.out.println()输出各科成绩和总成绩,使用System.out.printf()输出平均成绩,确保输出格式清晰易读。
  8. 关闭 Scannersc.close();关闭Scanner对象,释放资源。

    五、心得体会

    这次编程练习让我对Scanner类的应用场景有了更深入的理解。之前我只知道Scanner可以用来读取控制台输入,没想到它还能直接处理字符串,通过自定义分隔符实现高效的文本解析,这让我对 Java 工具类的灵活性有了新的认识。

    一开始我也考虑过用substring()手动截取字符串,但需要反复计算每个数字的位置,不仅代码繁琐,而且一旦字符串格式有细微变化就会出错。而使用Scanner结合正则分隔符的方式,代码变得简洁高效,鲁棒性也更强,只要字符串中包含数字就能正确提取,不用再担心下标计算错误的问题。

    同时,这次练习也让我注意到了浮点数除法的细节。一开始我不小心写成了total / 3,结果平均成绩直接变成了整数,丢失了小数部分。后来改成total / 3.0才得到了正确的浮点数结果,这让我意识到 Java 中整数除法和浮点数除法的区别,以后在处理数值计算时会更加注意精度问题。

    通过这道题,我不仅掌握了Scanner解析字符串的技巧,也体会到了正则表达式在文本处理中的强大作用,为以后处理类似的混杂文本解析问题打下了基础。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/12 7:59:00

智慧港口皮带跑偏AI实时监测与防爆摄像应用

一次轻微皮带跑偏未及时发现,足以造成数十万停机损失与设备报废!在散货智慧港口作业场景中,皮带输送机是矿石、煤炭、砂石转运的核心枢纽,长期高速重载、物料偏载、机架震动,极易出现皮带偏移、磨边、起皱等故障。传统…

作者头像 李华
网站建设 2026/6/12 7:58:03

微博图片批量下载神器:无需登录一键保存高清原图

微博图片批量下载神器:无需登录一键保存高清原图 【免费下载链接】weiboPicDownloader Download weibo images without logging-in 项目地址: https://gitcode.com/gh_mirrors/we/weiboPicDownloader 想象一下,你正在浏览微博,看到喜欢…

作者头像 李华
网站建设 2026/6/12 7:58:03

氮化镓充电器67W小冰雹避坑:分配不明、协议不全、散热不佳需留意

氮化镓充电器67W小冰雹避坑:分配不明、协议不全、散热不佳需留意市面上67W氮化镓充电器型号不少,参数看上去相近,实际体验却可能存在差异。有些产品在多口同时充电时笔记本充电较慢,有些发热比较明显。本文整理了三个常见的问题方…

作者头像 李华
网站建设 2026/6/12 7:57:28

外贸建站避坑:支付通道、物流对接的4个关键问题不能错

外贸建站避坑:支付通道、物流对接的4个关键问题不能错做外贸的朋友应该都懂,建站只是第一步,真正让人头疼的,是后续的支付和物流!前几天和做跨境服饰的小李聊天,他倒的苦水太扎心了:花5000多搭的…

作者头像 李华