第8章 常用实用类
8.1 String类
在Java中,String类专门用来处理字符序列。
Java把String类定义为final类,因此用户不能扩展String类,即String类不可以有子类。
8.1.1构造String对象
String对象,习惯上被翻译为字符串对象。
①常量对象:用双引号(英文输入法的双引号)括起来的字符序列,例如,”你好”,”12.97”,”boy”等。
②String对象:可以用String类声明对象并创建对象,例如:
String s=new String(“we are students”);
另外,用户无法输出String对象的引用:
System.out.println(s);
输出的是对象的实体,即字符序列we are students。
③引用String常量
String常量是对象,因此可以把String常量的引用赋值给一个String对象,例如:
String s1,s2;
s1=”你好”;
s2=”你好”;
8.1.2字符串的并置
String对象可以用“+”进行并置运算,即首尾相接得到一个新的String对象,例如:
String you=”你”;
String hi=”好”;
String testOne;
8.1.3 String类的常用方法
①public int length()
String类中的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(Strings)方法比较当前String对象的字符序列是否与参数s指定的String对象的字符序列相同,例如:
String tom=new String(“天道酬勤”);
String boy=new String(“知心好友”);
String jerry=new String(“天道酬勤”);
那么,tom.equals(boy)的值是false,tom.equals(jerry)的值是true.
③public boolean startsWith(String s)、public boolean endsWith(String s)方法
String对象调用startsWith(String s)方法,判断当前String对象的字符序列前缀是否是参数指定的String对象s的字符序列,例如:
String tom=”天气预报,阴有小雨”,jerry=”比赛结果,中国队赢得胜利”;
那么,tom.startsWith(“天气”)的值是true,jerry.startsWith(“天气”)的值是false.
使用endWith(String s)方法,判断一个String对象的字符序列后缀是否是String对象s的字符序列。
④public int compareTo(String s)方法
String对象调用compareTo(String s)方法,按字典序与参数指定的String对象s的字符序列比较大小。如果当前 String对象的字符序列与s的相同,该方法返回值0;如果大于s的序列,该方法返回正值;如果小于s的字符序列,该方法返回负值。例如,字符a在Unic中的排序位置是97,字符b是98,那么对于
string str = "abcde"
str.compare To("boy")小于0, str. compare To("aba")大于0, str. compare To(" abcde")等于0。
⑤public boolean contains(String s)
string对象调用 contains方法判断当前 I String对象的字符序列是否包含参数s的字符序列, 例如,tom=" student",那么tom .contains(“stu”)的值就是true, tom.contains(“ok’的值false。
⑥public int indexof (String s)Fu public int lastindexof(String s)
String对象的字符序列索引位置从0开始,例如,对于 String tom="ABCD",索引位置01、2和3上的字符分别是字符A、B、C和D。 String对象调用方法 index Of( String str)从当前String对象的字符序列的0索引位置开始检索首次出现str的字符序列的位置,并返回该位置。如果没有检索到,该方法返回的值是-1。 String对象调用方法 lastindexof( String str)从当前String对象的字符序列的0索引位置开始检索最后一次出现str的字符序列的位置,并返回该位置。如果没有检索到,该方法返回的值是-1。 indexof( String str, int startpoint)方法是一个重载方法,参数 startpoint的值用来指定检索的开始位置。
⑦public String substring (int startpoint)
字符串对象调用该方法获得一个新的Stng对象,新的 String对象的字符序列是复制当前 String对象的字符序列中的 I startpoint位置至最后位置上的字符所得到的字符序列。 String对象调用 substring( Int start, Int end)方法获得一个新的String对象,新的String对象的字符序列是复制当前 String对象的字符序列中的stat位置至end-1位置上的字符所得到的字符序列例如
String tom =”我喜欢篮球”;
String str=tom.substring(1,3);
那么 string对象str的字符序列是“喜欢”(注意,不是”喜欢篮”).
⑧ public String trim()
String对象调用方法trim()得到一个新的 String对象,这个新的 String对象的字当前 String对象的字符序列去掉前后空格后的字符序列。
8.1.4字符串与基本数据的相互转化
8.1.5对象的字符串表示
在子类中我们讲过,所有的类都默认是 java. lang包中 Object类的子类或间接子类。 Object类有一个 public String toString0方法,一个对象通过调用该方法可以获得该对象的字符串表示。一个对象调用 to string0方法返回的 String对象的字符序列的一般形式为:
创建对象的类的名字@对象的引用的字符串表示
8.1.6字符串与字符数组、字节数组
①字符串与字符数组
②字符串与字节数组
8.2StringTokenizer类
当分析一个 String对象的字符序列并将字符序列分解成可被独立使用的单词时,可以使va. util t包中的 String Tokenizer类,该类有两个常用的构造方法。
String Tokenizer( String s):为 String对象s构造一个分析器。使用默认的分隔标记,即空格符、换行符、回车符、Tab符、进纸符做分隔标记。
String Tokenizer( String s, String delim):为 String对象s构造一个分析器。参数 delim的字符序列中的字符的任意排列被作为分隔标记。
8.3Scanner类
①Scanner对象调用 next()方法依次返回被解析的字符序列中的单词,如果最后一个单词已被 next()方法返回, Scanner对象调用 hasNext()将返回 false,否则返回true。
②对于被解析的字符序列中的数字型单词,例如618、168.98等, Scanner对象可以用 nextInt()或 nextDouble()方法来代替next()方法,即可以调用 nextInt()或 nextDouble()方法将数字型单词转化为int或 double数据返回。
③如果单词不是数字型单词, 对象调用 nextInt()或 nextDouble()方法将发InputMismatch Exception 异常,在处理异常时可以调用 next()方法返回非数字化单词。
8.4StringBuffer类
8.4.1StringBuffer对象
StringBuffer类的对象的实体的内存空间可以自动地改变大小,便于存放一个可变的字符序列。
StringBuffer()类有三种构造方法:
StringBuffer();
StringBuffer(int size);
StringBuffer(String s);
8.5Date类与Calendar类
8.5.1Date类
①使用无参数构造方法
②使用带参数的构造方法
8.5.2 Calendar类
Calendar类在java.util包中。
8.6日期的格式化
8.6.1format方法
format方法: format(格式化模式,日期列表)
①格式化模式
②日期列表
③格式化同一日期