201711671118《Java程序设计》第八章总结

8.1 String类

①String常量:String常量也是对象,是用双引号括起的字符序列,如“你好”。被储存在常量池中(池中数据在程序运行期间不允许改变),内容相同的常量字符具有相同的引用。

②String变量:用new运算符声明的字符串为String变量,每个字符串都有自己的引用,即使内容相同其引用也不同。

③字符串的+运算:参与+运算的String对象,主要有一个是变量,那么Java就会在动态取存放所得到的新String对象的实体和引用(即new Stirng())。只有2个常量进行+运算,得到的结果才是常量。

④public boolean equals(String s):String对象调用equals(Stirng s)方法比较当前String对象字符序列是否与参数s指定的String对象的字符序列相同(比较内容是否相同),而s1==s2比较的是s1的引用与s2的引用是否相同(比较引用是否相同)。

⑤String类中常用方法:

public boolean startsWith(String s):判断当前String对象的前缀是否是s的字符序列。

public boolean startsWith(String s):判断当前String对象的是否以s的字符序列结束。

public int compareTo(String s):内容相同,方法返回值0,对象大于s则方法返回正数,否则返回负数。

public boolean contains(String s):判断String对象是否含有参数s的字符序列。

public String substring(int startpoint):获得一个新的String对象,该对象是startpoint位置到结束位置的字符序列。

public String trim():String对象调用trim()得到一个去掉前后空格的String字符。

public String toString():返回类名@引用的字符串表示。

public String replaceAll(String regex,String replacement):返回regex被replacement替换的字符。

public String[ ] split(String regex):返回以regex为分割线的String数组

⑥正则表达式:参考P187页。

8.2 StringTokenizer类

①当分析一个String对象的字符序列并将字符分解成独立使用的单词时,可以用java.util包中的StringTokenizer类,该类有两种构造方法:

StringTokenizer(String s):为String对象构建一个分析器。使用默认的分割标记(空格、换行、回车、Tab、进纸符)。

StringTokenizer(String s,String delim):以参数delim为分割为String对象构建一个分析器。

②分析器方法:

nextToken():逐个获取String对象的字符。

hasMoreTokens():主要该字符序列还有语言符号,则计数器的值大于0,该方法就返回true。

countTokens():得到分析器中计数变量的值。

8.3 Scanner类

①Scanner对象可以解析字符序列。

Scanner scanner = new Scanner(字符串对象);

scanner.useDelimiter(正则表达式);在解析操作时,以正则表达式作为分割标记。如果不指定则默认使用空白字符(空格、换行、回车)。

②Scanner类常用方法

next():依次返回被解析的字符,如果全部字符返回,则hasnext()将为false。

nextInt()或nextDouble()方法将数字型单词转化为int或double数据方法。如果单词不是数字型。则返回InputMismatchException异常。可以用next()返回非数值型单词。

③StringTokenizer和Scanner的区别:

StringTokenizer类将解析的单词放入StringTokenizer对象的实体中,StringTokenizer对象能快速获取单词,但是占用内存较多。(空间换时间)

Scanner类只存放分割符,因此Scanner获取单词的速度相对较慢,但是占用的内存也较小。(时间换空间)。

StringTokenizer对象可以调用countTokens()返回单词的数目,而Scanner类没这样的方法。

8.4 StringBuffer类

①String类的字符是不可更改的,而StringBuffer类对象的实体的内存空间可以自动改变大小,存储一个可变的字符。StringBuffer类有三种构造方法:

StringBuffer():创建一个初始容量为16的StringBuffer对象。当字符大于16时,容量自动增加。

StringBuffer(int size):创建一个初始容量为size的StringBuffer对象。

StringBuffer(String s):创建一个初始容量为slength()+16的StringBuffer对象。

②StringBuffer类常用方法

StringBuffer append(Stirng s):将字符s追加到StringBuffer的字符中并且返回StringBuffer对象的引用。

length():获取StringBuffer对象的字符个数。

capacity():获取StringBuffer对象的实际容量。

char charAt(int n)得到StringBuffer对象的位置n的字符。

public void set charAt(int n,char ch):将StringBuffer对象位置n的字符替换为ch字符。

StringBuffer insert(int index,String str):在StringBuffer对象位置n的字符插入str,并返回引用。

StringBuffer delete(int start,int end):start到end-1位置的字符全部删除。

public StringBuffer reverse():reverse()方法将字符翻转并返回引用。

StringBuffer replace(int start,int end,String str):将start到end-1位置的字符替换为str字符,并返回引用。

8.5 Date类和Calendar类(java.util包)

Date now = new Date()无参数构造函数获取本机的当前日期和时间。

Date date = new Date(1000)其中参数为公元(1970年1月1日0时)的毫秒差值。

public long currentTimeMillis()获取当前系统时间。

Calendar calendar = Calendar.getInstance() 初始化一个日历对象。

public int get(int field)可以获取有关年代、星期等信息,参数field的有效值是Calendar的静态常量。

public long getTimeInMillis()可以获取当前calendar对象的时间毫秒。

②Dota类重写toString方法,使得println(nowTime)不返回对象的引用,而是返回对象中的时间。

③可以使用format方法格式化时间表示。

8.7 Math类(Java.lang)、BigInteger类(java.math)和Random类(java.util)

①Math类有2个static常量:E和PI,两值分别是2.71828和3.1415926。

②math类常用方法参考P203。

③BigInteger类,当系统要处理特别大的整数时,可以使用java.math包中的BigInteger类的对象。

④Random类构造函数:

public Random(); 使用当前时间为种子创建一个对象。

public Random(long seed); 使用seed为种子创建对象。种子相同则随机数序列相同。

8.9 Class类与Console类

①class类是java.lang包的类,该类的实例可以帮助程序创建其他类的实例。创建对象最常用的方法是使用new运算符和类的构造方法,实际上也可以使用Class对象得到某个类的实例。步骤如下:

  1.使用Class类方法得到一个和某类相关的Class对象。

  2.调用newInstancce()方法获得对象

  例子:Class cs = Class.forName(“Rect”);

              Rect rect =(Rect)cs.newInstance();

②如果希望在键盘输入一行文本,但不想让文本回显,即不在命令行显示,那么就需要java.io包中的Console类的对象来完成。首先使用console方法返回一个Console类对象:

Console cons= System.console();

调用readPassword()方法读取用户在键盘输入的文本,并以char数组返回:

char[] passwd= cons.readPassword();

猜你喜欢

转载自blog.csdn.net/rumple49/article/details/83933210
今日推荐