20175310 《Java程序设计》第7周学习总结

Stella981
• 阅读 660

#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)的内容时看不懂书上的例子: 20175310 《Java程序设计》第7周学习总结

  • 问题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/720175310 《Java程序设计》第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;
            }

修改这两部分的代码后,运行结果如下图。可以看到不管是运算符还是分数,中间都有空格间隔。

20175310 《Java程序设计》第7周学习总结

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

20175310 《Java程序设计》第7周学习总结

  • 问题3解决方案: 在输出结果的时候加一个判断,当分子为0时,结果为0,分母为1时结果为分子,其余情况正常输出,代码如下:

i

f (numerator == 0) {
            result = "0";
        }
        else {
            if (denominator == 1)
                result = numerator + "";
            else
                result = numerator + "/" + denominator;
        }
        return result;

代码托管

20175310 《Java程序设计》第7周学习总结

学习进度条

代码行数(新增/累积)

博客量(新增/累积)

学习时间(新增/累积)

重要成长

目标

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

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
3年前
PPDB:今晚老齐直播
【今晚老齐直播】今晚(本周三晚)20:0021:00小白开始“用”飞桨(https://www.oschina.net/action/visit/ad?id1185)由PPDE(飞桨(https://www.oschina.net/action/visit/ad?id1185)开发者专家计划)成员老齐,为深度学习小白指点迷津。
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
20165310java_blog_week6
2165310《Java程序设计》第6周学习总结教材学习内容总结String构造StringstrnewString()String(chara)String(chara,i
可莉 可莉
3年前
20175310 《Java程序设计》第7周学习总结
20175310《Java程序设计》第7周学习总结本周博客:https://www.cnblogs.com/xicyannn/p/10705376.html(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fwww.cnblogs.com%2Fxicyannn%2Fp%2F1070
可莉 可莉
3年前
20165310java_blog_week6
2165310《Java程序设计》第6周学习总结教材学习内容总结String构造StringstrnewString()String(chara)String(chara,i
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
可莉 可莉
3年前
20165334 《java程序设计》第9周学习总结
学号20165334《Java程序设计》第9周学习总结教材学习内容总结13章知识总结获取地址1.获取Internet上主机的地址可以使用InetAddress类的静态方法getByName(Strings);获
Stella981 Stella981
3年前
20165334 《java程序设计》第9周学习总结
学号20165334《Java程序设计》第9周学习总结教材学习内容总结13章知识总结获取地址1.获取Internet上主机的地址可以使用InetAddress类的静态方法getByName(Strings);获