Java第02次实验

这个作业属于哪个班级 JAVA--网络2012
这个作业的地址 博客提交:Java第02次实验(Java基本语法与类库)-CSDN社区
这个作业的目标 Java第02次实验(Java基本语法与类库)
姓名 李兴果

2.PTA

2.1 综合小测验

对于控制台输入的处理,nextLine()方法与其他nextXXX方法混用会产生吞回车问题。建议全部使用Scanner.nextLine()处理输入以免碰到行尾回车换行问题。
注意

  • Eclipse自动生成快捷键解Alt+\,如switch、for、while、sysout、main
  • 使用Eclipse快速创建程序框架(利用Eclipse的quick fix功能快速创建方法)。
  • 不要重复创建Scanner对象。
  • 缩进, Tab、Shift+Tab。运行, ctrl+F11
  • 如果JDK为1.6版本(最新版PTA已支持1.8),switch不支持字符串。需先将字将String转化为int(早期的PTA 中使用的open jdk6)
  • 使用Eclipse的quick fix功能快速创建函数int choice2Int(String choice)
  • 一开始做这道题的时候,首先看到关键词“输入四个选项”,就有想到用switch的方法,四个选项分四块case。

  • 问题:Q1:对于第二个模块sort上,明显是需要使用数组形式,然后对数进行排序,我的想法是把数字都取出来然后放在新建的数组里面,因为字符串里面可能包含空格。使用了substring来取字符串,再使用Integer的parseInt取数字,查了数组Arrays.sort()用来排序,但还是没对。

  • Q2:search模块上,查找数字并返回下标,查找数字的话,用数组Arrays.binarySearch(下标,关键字)方法查找下标

  • Q3:身份证这里就是使用substring取字符n~m

  • Q4:共用数组问题

  • 代码块:

    • 原先sort模块
  • 老师sort模块

老师的代码简洁更多,构造另外函数方便调用

  • search模块:

2.2 身份证排序

  • 主要讲:sort1可直接使用Arrays.sort,String的subString

  • 采用结构化编程方式,针对sort1sort2各写一个方法处理。

  • 其他:nextInt()与nextLine()混用可能产生的后果。建议:全部使用Scanner的nextLine()处理输入以免碰到行尾回车换行问题

  • 分析:此题执行两个功能模块sort1与sort2

    新建数组A[] B[] C[] 分别给与分配空间,B数组存放输入内容,执行sort1时C数组存放A数组中的年月日,然后使用sort对数组C排序,sort同理

  • 主要代码:

2.3 StringBuilder用法

  • 百度:

String对象是不可改变的。每次使用 System.String类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。在需要对字符串执行重复修改的情况下,与创建新的 String对象相关的系统开销可能会非常昂贵。如果要修改字符串而不创建新的对象,则可以使用System.Text.StringBuilder类

    a:通过用一个重载的构造函数方法初始化变量,可以创建 StringBuilder类的新实例:
创建Stringbuilder对象:StringBuilder strB = new StringBuilder();
  • 这里字符串连接应用到append(String str)/append(Char c)

b:StringBuilder对象是动态对象,允许扩充它所封装的字符串中字符的数量,但是可以为它可容纳的最大字符数指定一个值,此值称为该对象的容量;

2.4 动态数组

  • 分析:乘法表的打印需要用到二维数组,需要考虑数组内容以及打印格式

  • 一开始没有考虑到格式问题询问同学之后知道使用%s来控制格式

2.5 ArrayList入门

  • 添加 arr.add(xx,"y");
  • 移除下标元素 arr.remove(indx);
  • 包含Contains();
  • 查找 IndexOf()、LastIndexOf();
  • 获取 arr.get(index);

2.5 浮点数的精确运算

  • 问题:Q1 为什么浮点型计算不用float或者double进行计算

  • 解决:浮点数由两部分组成:指数和尾数。浮点数的值实际上是由一个特定的数学公式计算得到的,float类型的变量只有7位的精度,而double类型的变量有16位的精度

  • 百度:

    Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大或者更小的数进行运算和处理。float和double只能用来做科学计算或者是工程计算,在商业计算中若需要精确的计算结果则要用java.math.BigDecimal类。

  • 注:
    a:使用BigDecimal时,需要用java.math.BigDecimal类,并且new一个BigDecimal空间
    b:这里加法add以及乘法multiply使用b1和a1面向对象
posted @ 2021-09-23 17:01  Li-xinguo★  阅读(45)  评论(0编辑  收藏  举报