20165336 2017-2018-2《Java程序设计》第6周学习总结
教材学习内容总结
- 常量池中的数据在程序运行期间再也不允许改变。
- String s = new String("We are students");
- 用户无法输出string对象的引用只能输出String对象的实体。
- String(char [] a)用一个字符数组创建一个String对象。
- String(char a[],int startIndex,int count)提取字符从startIndex开始count个。
- String对象可用“+”进行并置运算。
- String s = “你”+“好”与you+hao不一样,一个在常量池,一个在动态区诞生对象。
- String类的常用方法:
public int length()
public boolean equals(String s)注意 tom==jerry是false因为其中存放的是引用。
public boolean startsWith(String s)、public boolean endsWith(String s)
public int compareTo(String s)
public boolean cotains(String s)
public int indexOf(String s)、public int lastindexOf(String s)
public String substring(int startpoint)、public substring(int start,int end)注意是复制start位置至end-1位置上的所有字符 - int x = integer.parseInt(s);
- String str = String.valueOf(1234);
- 调用toString()方法返回String对象的字符序列的一般形式为:创建对象的类的名字@对象的引用的字符串表示。
- public void getChars(int start,int end, char c[],int offset)将字符数组中的序列中从位置start到end-1位置上的字符复制到数组c中。
- char [] c=“字符序列”.toCharArray();
- byte [] c="Java你好".getBytes();将当前String对象的字符序列存放到字节数组中并返回数组的引用。(一个汉字占两个字节,其他占一个字节)
- 正则表达式书p187.
- public String replaceAll(String regex,String replacement)
- public String[] split(String regex)例:String digitWord[] = str.split(regex);注意如果分隔的在开头则第一个单词为“”
- StringTokenizer(String s)使用默认的分隔标记即 空格符、换行符、回车符、Tab符、进纸符。
- StringTokenizer(String s,String delim)参数delim的字符序列中的字符的任意排列被作为分隔标记。
- Scanner类调用useDelimiter(正则表达式);、next()、hasNext()、nextInt()、nextDouble()
- StringBuffer类:append方法、public char charAt(int n)、public void setCharAt(int n,char ch)、StringBuffer insert(int index,String str)、public StringBuffer reverse()、StringBuffer delete(int startIndex, int endIndex)、StringBuffer replace(int startIndex,int endIndex,String str)
- 泛型类声明 class 类名
- 链表p444
- 堆栈p450:一种后进先出的数据结构
- 散列映射:一个键对应一个值
- 树集:同层从左向右排下层比上层小
- 树映射:保证节点是按照节点中的关键字升序排列。
代码调试中的问题和解决过程
- 问题1:在测试题中重写toString()方法时不能将其返回值改为void必须仍为String类型。
- 问题2:方法体抛出异常时方法体必须声明throws exception抛出什么异常。
- 问题3:在写递归程序时需要认清楚返回值的所有情况。
代码托管
(statistics.sh脚本的运行结果截图)