20175221 《Java程序设计》第7周学习总结
教材学习内容总结
第八章:常用实用类
String类:
-
String对象
-
常量对象
-
创建对象
-
并置字符串:使用“+”对String对象进行并置运算,首尾相接得到一个新的String对象
引用String类的常用方法:
- 1.public int length( ) :获取一个String对象的字符序列长度
- 2.public boolean equals(String s):比较当前String对象与参数s的字符序列是否相同
- 3.public boolean startsWith(String s):public boolean endsWith(Sting s): 判断当前字符序列的前缀或后缀,与s指定的字符序列是否相同
- 4.public boolean contains(String s):判断当前字符序列是否包含参数s的字符序列
- 5.public int indexOf (string s):从当前String对象的字符序列的0索引位置开始检索,至首次出现s的字符序列位置,存在则返回该位置,不存在则返回-1
- 6.public int lastIndexOf(String s):从当前String对象的字符序列的0索引位置开始检索,至最后一次出现s的字符序列位置,存在则返回该位置,不存在则返回-1
- 7.public String trim():得到当前String对象去掉前后空格的新字符序列,字符中间空格无法去掉
正则表达式:
- 正则表达式是一个String对象的字符序列,该字符序列中含有具有特殊意义的字符,这些特殊字符称作正则表达式的元字符
- 正则表达式的元字符
-
StringTokenizer类
-
StringTokenizer有两个构造方法:
1.StringTokenizer(String s):
使用默认的分隔标记,即空格、回车、换行、Tab- 2.
StringTokenizer(String s,String delim)
:使用delim中字符的任意排列作为分隔标记 -
Scanner类
- Scanner对象可以调用正则表达式作为分隔标记,解析程序需要的字符序列中的数据
- 构造对象:Scanner sc=new Scanner(String s)
- 确定分隔标记:sc.useDelimiter(正则表达式)
-
StringBuffer类
StringBuffer有三个构造方法:
StringBuffer():
分配初始容量16个字符,可以自动增加StringBuffer(int size):
初始容量为size,恶意自动增加StringBuffer(String s):
初始容量为s的字符序列长度+16-
StringBuffer类的对象的实体的存储空间可以自动的改变大小,便于存放
-
Date类与Calendar类
-
Date类:
Date nowTime=new Date()--
获取当前时间 - Calendar类:
- 初始化:
Calendar calendar = new Calendar.getInstance()
-
日期的格式化
-
使用format方法对日期格式化:
format(格式化模式,日期列表)
-
Math类,BigInter类和Random类
-
Math类用于静态方法、常量E和PI
-
BigInter类用于处理特别大的整数
-
Random类产生随机数
教材学习中的问题和解决过程
- 问题1:
- java中的Scanner类和C语言中的scanf有什么区别吗
-
问题1解决方案:
-
查阅资料知:
-
1.java是面向对象的语言
-
它没有像C语言中的scanf()函数,但是它的类库中有含有scanf功能的函数
-
2.java.util包下有Scanner类
-
Scanner类的功能与scanf类似
-
3.Scanner类的使用
-
Scanner使用next()方法接收输入的任何字符串
-
以回车换行符为结束标志
-
Scanner接收的字符串需要经过类型转换变成你想要的类型
代码调试中的问题和解决过程
-
问题1:编译报错:时间进行语法分析时已到达文件结尾
-
问题1解决方案:
- 查资料知原因:
- 分析已达到文件结尾一般是括号没有闭合,或者缺少了分号
- 问题2:对Date now = new Date()的一些思考:
- 问题2解决方案:
- 代码如下:
-
package collection.exercise; import java.util.Date; import java.text.SimpleDateFormat; import java.text.ParseException; public class Test1 { public static void main(String[] args) throws ParseException { // TODO Auto-generated method stub //使用Format()方法将日期转换为指定的格式 SimpleDateFormat df = new SimpleDateFormat("yyyy年MM月dd日 hh时mm分ss秒"); SimpleDateFormat df1 = new SimpleDateFormat("yyyy/MM/dd/ hh/mm/ss"); SimpleDateFormat df2 = new SimpleDateFormat("yyyy-MM-dd hh-mm-ss"); //创建对象,获取当前日期 Date now = new Date(); String date = df.format(now); String date1 = df1.format(now); String date2 = df2.format(now); System.out.println(date); System.out.println(date1); System.out.println(date2); //使用parse()方法将文本转换为日期 Date a = df.parse(date); Date b = df1.parse(date1); Date c = df2.parse(date2); System.out.println(a); System.out.println(b); System.out.println(c); } }
- 运行结果如下:
-
思考:
-
对当前时间的输出格式,可以在创建对象的时候一同进行编辑。但是用parse获得的时间,不能改变其输出的格式
代码托管(https://gitee.com/zxjacdl/zxj175221/tree/master/eight)
statistics.sh脚本的运行结果截图
上周考试错题总结
其他(感悟、思考等,可选)
- 第八章的常用实用类真的很有用,课下应该多多练习以熟记
学习进度条(四月份继三月份)
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 8篇 | 100小时 | |
第一周 | 13/13 | 1/1 | 12/12 | |
第二周 | 309/322 | 1/2 | 13/25 | |
第三周 | 614/923 | 1/3 | 15/40 | |
第四周 | 384/1379 | 1/4 | 12/52 | |
第五周 | 565/1954 | 1/5 | 12/64 | |
第六周 | 1080/3034 | 1/6 | 15/79 | |
第七周 | 671/3705 | 1/7 | 12/91 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。 耗时估计的公式 :Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
-
计划学习时间:12
-
实际学习时间:12
-
改进情况:继续保持稳定前进
(有空多看看现代软件工程 课件软件工程师能力自我评价表)
参考资料
-
[ Java 2 实用教程(第5版)]
- 正则表达式的元字符(https://www.cnblogs.com/self-hard/p/10232281.html)
- C语言中的scanf在java中应该怎么表达,Scanner类(https://www.cnblogs.com/alsf/p/6231874.html)
- java语法错误,进行分析时已经到达文件结尾(https://zhidao.baidu.com/question/680373923976896932.html)