20175310 《Java程序设计》第7周学习总结
20175310 《Java程序设计》第7周学习总结
本周博客:
https://www.cnblogs.com/xicyannn/p/10705376.html
教材学习内容总结
这周学习了第八章,主要学习了常用的几个类,分别是:
String类StringTokenizer类Scanner类StringBuffer类Date类与Calendar类- 日期格式化
Math类、BigInteger类与Random类- 数字格式化
Class类与Console类Pattern类与Match类
教材学习中的问题和解决过程
问题1:
在阅读课本P181页关于public int indexOf (String s)和public int lastIndexOf(String s)的内容时看不懂书上的例子:

问题1解决方案:
通过询问同学才知道原来在字符索引时空格也算是一个位置,所以索引tom字符串时,a应该在第二位而不是第一位。
代码调试中的问题和解决过程
在做这周的结对项目时,遇到了许多问题,有很多都用到了这周第八章的知识点,比如8.2中讲到的StringTokenizer类在拆分分数的后缀式时就有用到
问题2:
在写代码时发现需要把中缀式转成后缀式后,将每个分数和运算符拆开,下图中等号左边表示系统自动生成的中缀式,右边是后缀式。可以看出中缀转后缀并没有出错,问题在于后缀式的第一项是1/6,第二项是1/7,通过StringTokenizer方法拆分后缀式,但由于1/6和1/7中间没有任何标识符,因此系统自动把他们俩当成了一个整体,所以在之后的入栈时就会提示出错:Exception in thread main java. lang NumberFormatException: For input string: 1/61/7,意思就是说数字格式异常:对于输入字符串:1/61/7。
,问题2解决方案:
通过在分数以及运算符前后加空格作为间隔的标志,下面是在运算符后面加空格的代码:
if (j <= a) {
fuhao k = new fuhao(); //声明类fuhao的对象k
char q = k.yunsuanfu(); //产生一个运算符q
Question1 = Question1 + zi + '/' + mu +" " +q+" "; //将生成的随机数和随机符号存入Question1中
} else {
Question1 = Question1 +zi + '/' + mu; //将生成的随机数存入Question1中
}
下面是在分数后面加空格的代码:
if(ch >= '0' && ch <= '9' && ch1 == '/'&&ch2>='0'&&ch2<='9') {// 如果是分数,则直接输出
out+=ch;
out+=ch1;
out+=ch2;
out+=" ";
continue;
}
修改这两部分的代码后,运行结果如下图。可以看到不管是运算符还是分数,中间都有空格间隔。

- 问题3:
当分母为1时显示的不是整数形式而是x/1(x是大于1的整数),并且判断对错时,对于输入的整数答案判定为错误,只有输入x/1才显示正确。

- 问题3解决方案:
在输出结果的时候加一个判断,当分子为0时,结果为0,分母为1时结果为分子,其余情况正常输出,代码如下:
i
f (numerator == 0) {
result = "0";
}
else {
if (denominator == 1)
result = numerator + "";
else
result = numerator + "/" + denominator;
}
return result;
代码托管

学习进度条
| 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
|---|---|---|---|---|
| 目标 | 5000行 | 30篇 | 400小时 | |
| 第一周 | 6/6 | 2/2 | 30/30 | |
| 第二周 | 625/631 | 3/5 | 35/65 | |
| 第三周 | 660/1291 | 2/7 | 38/103 | |
| 第四周 | 972/2263 | 2/9 | 30/133 | |
| 第五周 | 399/2662 | 3/12 | 32/165 | |
| 第六周 | 1342/4004 | 3/15 | 35/200 | |
| 第七周 | 1341/5345 | 2/17 | 35/235 |
20175310 《Java程序设计》第7周学习总结的更多相关文章
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 20145213《Java程序设计》第二周学习总结
20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...
- 20145213《Java程序设计》第一周学习总结
20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145330孙文馨 《Java程序设计》第一周学习总结
20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...
- 20145337 《Java程序设计》第九周学习总结
20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...
- 20145337 《Java程序设计》第二周学习总结
20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...
- 20145218《Java程序设计》第一周学习总结
20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...
- 《Java程序设计》第九周学习总结
20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...
- 《Java程序设计》第二周学习总结
20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...
随机推荐
- 基于Log4j完成定时创建和删除日志的方法
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 Log4j作为常用的日志生成工具,其清除日志的策略却十分有限. ...
- Android为TV端助力 转载:android MVC设计模式
Controller控制器 import android.app.Dialog; import android.app.ProgressDialog; import android.os.Bundle ...
- Java面试题总结(不定期更新)
1.HashMap和Hashtable的区别? HashMap:key.value都可以为空,线程不安全.初始容量16,扩容方式每次为2倍 Hashtable:不支持null key 和null va ...
- Flutter 布局(一)- Container详解
本文主要介绍Flutter中非常常见的Container,列举了一些实际例子介绍如何使用. 1. 简介 A convenience widget that combines common painti ...
- Java:字节流和字符流(输入流和输出流)
本文内容: 什么是流 字节流 字符流 首发日期:2018-07-24 什么是流 流是个抽象的概念,是对输入输出设备的抽象,输入流可以看作一个输入通道,输出流可以看作一个输出通道. 输入流是相对程序而言 ...
- Python minidom模块(DOM写入和解析XML)
一.DOM写XML文件 #导入minidom from xml.dom import minidom # 1.创建DOM树对象 dom=minidom.Document() # 2.创建根节点.每次都 ...
- webstorm 2018 激活破解方法大全
转载自:https://blog.csdn.net/voke_/article/details/76418116 方法一:(更新时间:2018/4/8)v3.3 注册时,在打开的License Act ...
- MySQL 8.0.11安装配置
官网地址:https://dev.mysql.com/downloads/mysql/ 我这里是RHEL6.5的系统,因此选择RedHat 6 x86,64bit操作系统---下载第一个RPM Bun ...
- c# 设置MdiClient窗体的背景图片
在窗体的InitializeComponent();方法后面添加下面的代码. MdiClient MC = new MdiClient(); MC.Name = "MdiClientForm ...
- echo '1'.print(2)+3; 的输出结果为什么是511
今天看到一道有趣的题目,如上所示.结果为什么会是511呢? 这个结果的计算分为三步来理解: 首先计算的是 右边print(2)+3,这个你可以直接理解成print(2+3),得到的结果是5.而prin ...