20175320 2018-2019-2 《Java程序设计》第7周学习总结
教材学习内容总结
本周学习了教材的第八章的内容,在这章中介绍了常用的实用类,着重讲了如何利用String类、StringBuffer类处理字符序列的信息,使用StringTokenizer、Scanner类分析字符序列,以及使用各种类进行时间处理、处理特别大的整数以及格式化。
String类
String常量是使用双引号括起来的字符序列,String变量使用构造方法分配内存空间并在内存空间中放入字符序列,然后计算出引用。
String对象可以使用“+”进行并置运算,参与并置的运算的String对象,只要有一个是变量,那么就会在动态区存放所得到的新的String对象的实体和引用。如果是两个常量进行并置运算,那么得到的仍然是常量。
String类的常用方法:
- 1、public int length():用来获取一个String对象的字符序列的长度。
- 2、public Boolean equanls(String s):比较当前String对象的字符序列是否与参数s指定的String对象的字符序列相同。
- 3、public Boolean startsWith(String s)、public Boolean endsWith(String s)方法:判断当前的字符序列前缀是否是参数指定的String对象s的字符序列。
- 4、public int compareTo(String s)方法:按字典序与参数指定的String对象s的字符序列比较大小。
- 5、public Boolean contains(String s):判断当前String对象的字符序列是否包含参数s的字符序列。
- 6、public int indexOf(String s)和public int lastIndexOf(String s):String对象调用方法indexOf(String str)从当前String对象的字符序列的0索引位置开始检索首次出现str的字符序列的位置,并返回该位置。如果没有检索到,该方法返回的值是-1.lastIndexOf(String s)方法检索最后一次出现str的字符序列的位置。
- 7、public String substring(int startpoint):得到一个新的字符串,新的字符串是复制当前String对象的字符序列中的startpoint位置至最后位置上的字符所得到得字符序列。
- 8、public static String valueOf(int n):将参数转化为String对象。
- 9、public String toString()方法:获得该对象得字符串表示,可对该方法进行重写。
- 10、public char[] toCharArray():将String对象的字符序列的全部字符存放在一个字符数组中。
- 11、public boolean matches(String regex):判断当前String对象的字符序列是否和参数regex指定的正则表达式匹配。
- 12、public String replaceAll(String regex,String replacement):返回一个新的替换后的String对象。
- 13、public String[] split(String regex):使用参数指定的正则表达式regex作为分隔符标记分解出当前String对象的字符序列中的单词。
StringTokenizer类
可使用该类的对象分解String对象的字符序列,常用构造方法为StringTokenizer(String s),StringTokenizer(String s,String delim)。
常用方法:
- 1、nextToken():逐个获取String对象的字符序列中的单词。
- 2、hasMoreToken():只要字符序列中还有语言符号,该方法就返回true,否则返回false。
- 3、countToken():返回剩余的字符的个数。
Scanner类
重要方法:
- 1、next():依次返回被解析的字符序列中的单词。
- 2、hasNext():可查看被解析的字符序列中是否还有单词。
StringBuffer类
String对象的字符序列是不可修改的,但StringBuffer类的对象的实体的内存空间可以自动地改变大小,便于存放一个可变的字符序列,构造方法为StringBuffer(),StringBuffer(int size),StringBuffer(String s)。
重要方法:
- 1、length():获取实体中存放的字符序列的长度。
- 2、capacity():获取当前实体的实际容量。
- 3、StringBuffer append(String s):将String对象s的字符序列追加到当前StringBuffer对象的字符序列中,并返回当前StringBuffer对象的引用。
- 4、public char charAt(int n)和public void setCharAt(int n,char ch):得到序列位置n上的字符和替换ch指定的字符。
- 5、StringBuffer insert(int index,String str):将参数str指定的字符序列插入到参数index指定的位置。
- 6、public StringBuffer reverse():将对象实体中的字符序列翻转。
- 7、StringBuffer delete(int startIndex,int endIndex):从当前StringBuffer对象的字符序列中删除一个子字符序列,并返回当前对象的引用。
- 8、StringBuffer replace(int startIndex,int endIndex,String str):将当前StringBuffer对象的字符序列的一个子字符序列用参数str指定的字符序列替换。
教材学习中的问题和解决过程
本周的学习内容并不算难度很高,教材的示例代码也给出了相关方法的作用以及具体使用方式,在学习过程中没有什么困难,但是仍存在相关类以及方法较多且较繁杂的问题,这需要在练习中加深印象。
代码调试中的问题和解决过程
- 问题1:运行如图程序时显示方法已过时:
- 问题1解决方法:使用
javac -Xlint:deprecation Example8_20.java
命令对代码进行编译,发现是newInstance()方法已过时。
代码托管
上周考试错题总结
- 错题1:该错误应通过Exception类来进行描述。
- 错题2:
其他(感悟、思考等,可选)
在本周的学习过程中遇到了许多前面使用过的类,在这周的内容中介绍了更多的常用类并对前面出现过的类进行了拓展,个人觉得本章内容还是十分重要的,在做项目的过程中我多次用到了本周的内容,但常用类直接的关系以及类的各种方法容易混淆,需要在今后的联系中多理解。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第七周 | 1140/6393 | 1/11 | 20/152 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
- 计划学习时间:25小时
- 实际学习时间:20小时
- 改进情况:多看看现代软件工程 课件 软件工程师能力自我评价表