《java程序设计》第七周学习总结
20175225 2018-2019-2 《Java程序设计》第7周学习总结
教材学习内容总结
常用实用类
- String类
- 程序可以直接使用String类,但不能进行扩展,即String类不可以有子类
- 常用构造方法
- String(char a[])用一个字符数组a创建一个String对象
char a[ ] = {'J','a','v','a'}; String s = new String(a);
- String(char a[ ],int startIndex,int count)提取字符数组a中的一部分字符创建一个String对象,参数startIndex和count分别指定在a中提取字符的起始位置和从该位置开始截取的字符个数
char a[ ] = {'零 ' , '一 ' , '贰 ' , '叁 ' , '肆 ' , '伍 ' , '陆 ' , '柒 ' , '捌 ' , '玖 ' }; String s = new String(a,2,4); 相当于 String s = new String(" 贰叁肆伍");
- String对象可以用'+'进行并置运算,即首尾相接得到一个新的String对象,即
String you = '你 '; String hi = ' 好'; String testone = '你好 '; String testtwo = hi + you; String testone = String testtwo; 的结果为false
- String类的常用方法
- public int length()方法用来获取一个String对象的字符序列的长度
String china = "1945年抗战胜利"; int n1,n2; n1 = china.length(); n2 = "小鸟fly".length(); 则n1的值是9,n2的值是5
- 字符串不能直接相等,要用public boolean equals(String s)
String对象调用equals(String s)方法比较当前String对象的字符序列是否与参数s指定的String对象的字符序列相同
String tom = new String("天道酬勤"); String boy = new String("知心朋友"); String jerry = new String("天道酬勤"); 则tom.equals(boy)的值是false,tom.equals(jerry)的值是true 注:若tom == jerry 的值是false
- public boolean startsWith(String s)
String对象调用startsWith(String s)方法,判断当前String对象的字符序列前缀是否是参数指定的String对象s的字符序列
String tom = "天气预报,阴有小雨", jerry = "比赛结果,中国队胜利"; 则tom.startsWith("天气")的值是true,jerry.startsWith("天气")的值是false
- public boolean endsWith(String s)
String对象调用endsWith(String s)方法,判断当前String对象的字符序列后缀是否是参数指定的String对象s的字符序列
则tom.endsWith("大雨")的值是false,jerry.endsWith("胜利")的值是true
- public int compareTo(String s)
String对象调用compareTo(String s)方法,按字典序与参数指定的String对象s的字符序列比较大小。如果当前String对象的字符序列与s相同,该方法返回值为0;如果大于s的字符序列,该方法返回正值;如果小于s的字符序列,该方法返回负值
- public boolean contains(String s)
String对象调用contains方法判断当前String对象的字符序列是否包含参数s的字符序列
例如,tom="student",那么tom.student("stu")的值就是true,而tom.contains("OK")的值是false
- public int indexOf(String s)
String对象调用方法indexOf(String str)从当前String对象的字符序列的0索引位置开始检索首次出现str的字符序列的位置,并返回该位置,如果没有检索到,则返回负一;indexOf(String str,int startpoint)方法是一个重载方法,参数startpoint的值用来指定检索的开始位置
String tom = "I am a good cat"; tom.indexOf("a"); //值是2 tom.indexOf("good",2); // 值是7 tom.indexOf("a",7); //值是13 tom.indexOf("w",2); //值是-1
- public Int lastIdexOf(String s)
String对象调用方法lastIdexOf(String str)从当前String对象的字符序列的0索引位置开始检索最后一次出现str的字符序列的位置,并返回该位置,如果没有检索到,则返回负一
- public String substring(int satrtpoint)
String对象调用substring(int start,int end)方法获得一个新的String对象,新的String对象的字符序列是复制当前String对象的字符序列中的start位置至end-1位置上的字符所得到的字符序列
String tom = "我喜欢篮球"; String str = tom.substring(1,3); 那么对象str的字符序列是"喜欢"
- public String trim()
String对象调用trim()方法获得一个新的String对象,这个新的String对象的字符序列是当前String对象的字符序列去掉前后空格的字符序列 - 学会正则表达式的使用
- 什么是正则表达式
- 字符串的替换
- 字符序列的分解 - 熟悉String类和StringBuffer类的不同
- String对象的字符序列是不可修改的(实体不可变)
- StringBuffer类的对象的实体的内存空间可以自动的改变大小,便于存放一个可变的字符序列(实体可变) - 学会使用StringTokenizer、Scanner类,并清楚二者使用时的区别
- StringTokenizer类把分解出的单词全都存放在StringTokenizer对象的实体中,获取单词速度快,但是占用内存多
- Scanner类不把单词放到Scanner对象的实体中,而是仅仅存放获取单词的分隔标记,获取单词速度相对较慢,但是节省内存空间 - 了解Date类、Calendar类和format方法的使用
- 熟悉Math类、BigInteger类和Random类的应用条件
- Math类:random方法生成的随机数是double型的并且取值范围是[0.0,1.0)
- BigInteger类:当程序中需要处理特别大的整数时就可以使用该类
- Random类:虽然也是生成随机数,但是用起来比Math类灵活
教材学习中的问题和解决过程
问题1:
java中的Scanner类和C语言中的scanf有什么区别吗
问题1解决方案:
查阅资料知:
1.java是面向对象的语言
它没有像C语言中的scanf()函数,但是它的类库中有含有scanf功能的函数
2.java.util包下有Scanner类
Scanner类的功能与scanf类似
3.Scanner类的使用
Scanner使用next()方法接收输入的任何字符串
以回车换行符为结束标志
Scanner接收的字符串需要经过类型转换变成你想要的类型
码云链接
代码托管
总结
在这周的学习中,能够进一步体会教材程序的编译运行等操作,收获很多,对之前学习的知识有了一定的巩固,也加深了对一些知识的印象。