第11章 Java常用类库
通过本章的学习可以达到以下目标:
掌握String与StringBuffer的区别,可以熟练使用StringBuffer中的各种方法进行相关操作。
能够自己编写一个得到日期的操作类,并将这些日期进行格式化操作。
掌握比较器及其基本原理,并可以通过比较器进行对象数组的比较操作。
掌握对象克隆技术及其实现要求。
能够灵活地应用正则表达式对字符串的组成进行判断。
了解并使用Java中提供的观察者操作机制。
认识Java中的Random、Locale、Math等常用类,并可以使用Local进行国际化程序的编写。
描述出Object、System类对垃圾收集的支持。
使用NumberFormat、DecimalFormat、BigInteger、BigDecimal进行数字的操作。
了解Java定时器任务调度的实现。
在Java中提供了很多的操作类库,为读者开发程序提供了方便,之前讲解数组时的排序操作方法及String类等,都是Java提供给用户的类库。本章将介绍在实际开发时Java中出现的各种常见类库。本章视频录像讲解时间为5小时38分钟,源代码在光盘对应的章节下。
11.1 StringBuffer类
11.1.1 认识StringBuffer类(1)
前面已经详细地讲解了String类的各种概念,其中有一条特性是String的内容一旦声明则不可改变,如果要改变,则改变的肯定是String的引用地址,那么如果一个字符串要被经常改变,则就必须使用StringBuffer类。从前面的学习中读者已经清楚地知道,在String类中可以通过"+"进行字符串的连接,但在StringBuffer中却只能使用append方法进行字符串的连接,如图11-1所示。
![]() |
(点击查看大图)图11-1 String与StringBuffer连接字符串的不同操作 |
表11-1中列出了StringBuffer中的一些常用方法,其他方法读者可以自行查询JDK文档。
表11-1 StringBuffer的常用方法
表11-1 StringBuffer的常用方法
序号<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> | 方 法 定 义 | 类型 | 描 述 |
1 | public StringBuffer() 对计算机类的认识。 | 构造 | StringBuffer的构造方法 |
2 | public StringBuffer append(char c) | 方法 | 在StringBuffer中提供了大 个数的认识。 量的追加操作(与String 中使用“+”类似),可以向 StringBuffer中追加内容, 此方法可以添加任何的数据类型 |
3 | public StringBuffer append(String str) 认识类问题, | 方法 | |
4 | public StringBuffer append(StringBuffer sb) | 方法 | |
5 | public int indexOf(String str) stringbuffer常用方法。 | 方法 | 查找指定字符串是否存在 |
6 | public int indexOf(String str,int fromIndex) | 方法 | 从指定位置开始查找指定 stringbuffer类的常用方法, 字符串是否存在 |
7 | public StringBuffer insert(int offset,String str) | 方法 | 在指定位置处加上指定字符串 |
8 javastring和stringbuffer? | public StringBuffer reverse() | 方法 | 将内容反转保存 |
9 | public StringBuffer replace(int start,int end, String str) | 方法 c++ stringbuffer? | 指定内容替换 |
10 | public int length() | 方法 | 求出内容长度 |
11 string转stringbuffer, | public StringBuffer delete(int start,int end) | 方法 | 删除指定范围的字符串 |
12 | public String substring(int start) | 方法 Stringbuffer。 | 字符串截取,指定开始点 |
13 | public String substring(int start,int end) | 方法 | 截取指定范围的字符串 |
14 java中stringbuffer。 | public String toString() | 方法 | Object类继承的方法, 用于将内容变为String类型 |
下面来一一验证这些方法。
U提示:StringBuffer支持的方法大部分与String类似。
因为StringBuffer在开发中可以提升代码的性能,所以使用较多,这样为了保证用户操作的适应性,在StringBuffer类中定义的大部分方法名称都与String是一样的。
1.实例操作一:字符串连接操作
在程序中使用append()方法可以进行字符串的连接,而且此方法返回了一个StringBuffer类的实例,这样就可以采用代码链的形式一直调用append()方法,代码如下所示。
范例:通过append连接各种类型的数据
- package org.lxh.demo11.stringbufferdemo;
- public class StringBufferDemo01 {
- public static void main(String[] args) {
- StringBuffer buf = new StringBuffer();
- // 声明StringBuffer对象
- buf.append("Hello ");
- // 向StringBuffer中添加
- 内容
- buf.append("World").append("!!!");
// 可以连续调用append方法 - buf.append("\n");
- // 添加一个转义字符表示换行
- buf.append("数字 = ").append(1).append("\n");
// 可以添加数字 - buf.append("字符 = ").append('C').append("\n");
// 可以添加字符 - buf.append("布尔 = "). append(true);
- // 可以添加布尔类型
- System.out.println(buf);
- // 内容输出
- }
- }
程序运行结果:
- Hello World!!!
- 数字 = 1
- 字符 = C
- 布尔 = true
以上代码中的"buf.append("数字 = ").append(1).append("\n")"实际上就是一种代码链的操作形式。
范例:验证StringBuffer的内容是可以修改的
- package org.lxh.demo11.stringbufferdemo;
- public class StringBufferDemo02 {
- public static void main(String[] args) {
- StringBuffer buf = new StringBuffer();
// 声明StringBuffer对象 - buf.append("Hello ");
- // 向StringBuffer中添加内容
- fun(buf) ;
// 传递StringBuffer引用 - System.out.println(buf);
- // 将修改后的结果输出
- }
- public static void fun(StringBuffer s){
// 接收StringBuffer引用 - s.append("MLDN ").append("LiXingHua")
;// 修改StringBuffer内容 - }
- }
程序运行结果:
- Hello MLDN LiXingHua
从程序的运行结果中可以发现,将StringBuffer对象的内容传递到了fun()方法后,对StringBuffer的内容进行修改,而且操作完毕后修改的内容将被保留下来,所以与String比较StringBuffer的内容是可以修改的。