Java第02次实验(Java基本语法与类库)

Java第02次实验(Java基本语法与类库)

1.PTA-jmu-Java-02-Java基本语法

1.1 综合小测验

1.1.1 控制台输入处理

  • 由于nextLine()方法与其他nextXXX方法混用会产生吞回车问题。所以建议全部使用Scanner.nextLine()处理输入以免碰到行尾回车换行问题。

1.1.2 Eclipse自动生成快捷键

  • Alt+switch、for、while、sysout、main

  • 缩进: Tab、Shift+Tab

  • 运行:ctrl+F11

  • 快速创建函数(createMethod):quick fix功能

1.1.3 代码

  • 两段代码的比较,相比之下采用switch-case比较可观,简洁。

1.2 StringBuilder

1.2.1 Q&A

Q1:为什么使用StringBuilder而不使用String?

A1:在频繁修改字符串的时候,String具有不可变性,如果进行字符串的拼接时,就会需要多个字符串变量,就降低了代码的执行效率。

Q2:调用StringBuilder的append(char[] str)方法时,是如何实现添加字符的操作?

A2:java.lang.StringBuilder.append(char[] str) 方法添加这个序列的char数组参数的字符串表示形式。字符数组参数按顺序追加序列的内容,这个序列的长度增加该参数的长度,且StringBuilder内部使用字符数组来存放字符。

1.2.2 Java StringBuilder类

1.2.3 代码

1.3 身份证排序

1.3.1 知识点

  • sort1可直接使用Arrays.sort,String的subString

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

  • 换行问题:全部使用Scanner的nextLine()处理输入

1.3.2 代码

先用String类型的数组存放身份号,然后使用String类型的SubString方法截取出年月日存放到一个变量数组data中,然后使用Arrays类中的sort方法进行排序,就能得到排序好的数组。照出生月份排序:使用SubString截取的月,把月份放在最前面,然后再用sort排序,排完之后再换回来。

1.4 动态数组

1.4.1 知识点

  • 定义数组时数组第一维需事先确定大小,第二维大小可在程序运行中动态确定
  • 格式化输出:String.format或者System.out.printf

1.4.2 代码

1.5 ArrayList入门

1.5.1 ArrayList类

  • 添加元素 arr.add("a");
  • 删除元素 arr.remove(object obj);//移除数组中的obj元素
  • 查找元素 Contains()、IndexOf()、LastIndexOf()三种方法
  • 获取元素 arr.get(index);

1.5.2 代码

1.6 浮点数的精确运算

1.6.1 知识点--浮点数不精确问题

  • 使用BigDecimal解决,BigDecimal对象的构造(以字符串的方式构造)

Q:BigDecimal的不可变性,如何体现?

A:BigDecimal在进行每一步运算时,都会产生一个新的对象,因此a.add(b)虽然作了加法操做,可是a并无保存加操做后的值,正确的用法应该是a=a.add(b);

1.6.2 代码

2. 加分题

2.1 Math类应用

新建n个大小的数组,往数组中随机填入1-100之间的整数(写成函数形式),然后统计并输出其中大于50与小于等于50的百分比(写成函数形式)。

2.1 知识点

Math类产生随机数

Math.random();//返回范围在[0.0,1.0)的双精度随机数
(int)(Math.random()*10);//返回0到9之间的int值
1+(int)(Math.random()*10);//返回[1,10]之间的int值
(int)(3+Math.random()*(17-3+1));//返回3到17之间的int值

Random类产生随机数

Random random = new Random();
random.nextInt(); //返回任意int值
random.nextInt(10); //返回范围在[0,10)之间的int值

2.1.1 代码

2.1.2 代码

编写一个简单密码生成器类SimplePasswordGenerator,内含一个方法:

public static String generate(int length),可以产生length长度的简单密码,该密码由大写字母、小写字母、数字组成。注意:小写字母中不应包含小写字母L。

输出:

2.1.3 代码

加分考核点:(选做)构造大小为26的char数组,随机生成n个从a-z的字符,最后统计输出每个字符占总生成字符的百分比。

原文地址:https://www.cnblogs.com/GGGa-Yi/p/15318795.html