java常用类库
- 格式:doc
- 大小:2.74 MB
- 文档页数:76
java 常用类库【学习心得】
【StringBuffer 类】
StringBuffer 类本身是带缓冲区的,也是操作字符串的。与String 类不同的是:String 类中的内容一旦声明则不可改变,改变的仅仅是内存地址的指向,而StringBuffer 中的内容是可以改变的。
对于StringBuffer 类而言,本身是一个操作类,不能像String 那样直接赋值进行对象的实例化,必须通过构造方法(new )完成。
StringBuffer 中采用append ()方法进行字符串的连接,而String 中使用“+”进行字符串的连接。
StringBuffer 类中的常用方法:
public StringBuffer append (boolean b)——串尾追加。StringBuffer 类中重载了很多append 方法,包括int 、float 、String 、char 、Object 等等。此外append ()方法的返回值是StringBuffer 所以可以连续使用。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 public class StringBufferDemo01 {
public static void main(String[] args) {
StringBuffer sb = new StringBuffer();
/* 向StringBuffer 中添加内容 */
sb.append("http://");
sb.append("www.").append("imooc").append(".com");
sb.append("\n").append("添加数字:").append(123);
sb.append("\n 添加字符:").append('Q');
sb.append("\n 布尔值:").append(true );
System.out.println(sb);
}
}
运行结果:
添加数字:123
添加字符:Q
布尔值:true
StringBuffer 中的内容可以通过引用传递的方式改变,而String 中的内容不能通过引用传递进行改变。
至于为什么String 中的内容不可改变,详见:java 中的一些概念总结——java 引用传递及其应用。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 public class StringBufferDemo02 {
public static void main(String[] args) {
StringBuffer sb = new StringBuffer();
sb.append("http://");
changeStringBuffer(sb);
// StringBuffer 中的内容已经被改变了
System.out.println(sb);
String str = "中国";
changeString(str);
System.out.println(str);
}
public static void changeStringBuffer(StringBuffer sb) { // 接收StringBuffer 的引用
sb.append("www.").append("imooc").append(".com"); // 修改StringBuffer 的内容
}
public static void changeString(String str) { // 通过引用传递的方式并没有改变字符串
str = "China"; } }
程序的运行结果:
中国
从以上结果可以看出StringBuffer 中存储的内容改变了,而String 中的内容并没有被改变。
public StringBuffer insert (int offset,boolean b)——在任意位置进行插入(offset 的取值0~length )。同样该方法也被重载了很多次。 1 2 3 4 5 6 7 8 StringBuffer sb = new StringBuffer();
sb.append("中国");
sb.insert(1, "T"); //在1位置添加
System.out.println(sb);
/*在最后添加*/
sb.insert(sb.length(), " imooc"); System.out.println(sb);
运行结果:
T 中国
T 中国 imooc
public StringBuffer reverse ()——字符串反转(逆序)
1 2 3 4 StringBuffer sb = new StringBuffer();
sb.append("中国");
sb.reverse();
5 System.out.println(sb); 运行结果:
国中
public StringBuffer replace (int start, int end,String str)——使用给定 String 中的字符替换此序列的子字符串中的字符。start - 起始索引(包含)。end - 结束索引(不包含)。 1 2 3 4 StringBuffer sb = new StringBuffer();
sb.append("imooc");
sb.replace(1, 3, "中国"); System.out.println(sb);
运行结果:
i 中国oc
public String substring (int start)——返回一个新的 String ,它包含此字符序列当前所包含的字符子序列。该子字符串始于指定索引处的字符,一直到此字符串末
尾。 1 2 3 4 StringBuffer sb = new StringBuffer();
sb.append("http://").append("www.").append("imooc").append(".co m");
String str = sb.substring(7);
System.out.println(str);
运行结果:
public int indexOf (String str)——第一次出现的指定子字符串在该字符串中的索引。