《Java程序设计》第7周学习总结
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)
 
                    
                     
                    
                 
                    
                 
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号