都是以前自己写的demo 主要是自己查看源码跟与老师讲课后的分析。
希望对大家有所帮助。
/**
* 在实际开发当中,我们经常会使用字符串的链接操作,如果使用String来操作
*则使用“+”号完成字符串的连接操作
*使用String链接字符串,代码性能会非常低,因为String的内容不可改变 不断在创建char数组
*
*使用StringBuffer类主要在+的时候 16个以内,都在一个char数组内,而String每+一次便新建一个char数组
*
* 方法名称 描述
*public StringBuffer() 构造一个空的StringBuffer类
*public StringBuffer(String str) 将指定的String变成StringBuffer的内容
*public StringBuffer(CharSequence seq) 接收CharSequence接口的实例
*public StringBuffer append(数据类型 b) 提供了很多的append方法,用于字符串的链接
*public StringBuffer delete(int start,int end) 删除指定位置的内容
*public int indexOf(String str) 字符串的查询功能
*public StringBufer insert(int offset,数据类型 b) 在指定位置上增加一个内容
*public StringBufer replace(int start,int end, str) 替换 单线程优先考虑
*
*
*StringBuffer 的兄弟类 StringBuilder 是StringBuffer一个简易替换,单线程
* */
package com.vince.stringBuffer;
public class StringBufferDemo {
public static void main(String[] args) {
//默认字符数组的大小是16
//扩展方式:(原来的长度+1)*2
//如果我们可以确定整个长度,可以调用带初始容量的构造方法
StringBuffer sb = new StringBuffer();
sb.append("此刻打盹,你将做梦;");
sb.append("此刻学习,你将圆梦。");
sb.append("现在淌的哈达子,将成为未来的眼泪!").append("伤不起");
sb.delete(30, 32);
System.out.println(sb.toString());
int index = sb.indexOf("你");
System.out.println("你第一次出现的位置"+index);
//插入方法
sb.insert(31,"明天的");
System.out.println(sb);
//替换方法 *public StringBuffer replace(int start,int end, str) 替换
sb.replace(0, 2, "现在");
System.out.println(sb);
//反转
/* sb.reverse();
System.out.println(sb);
*/
//字符串截取
//public
String s1 = sb.substring(20);
System.out.println(s1);
String s2 = sb.substring(20, 27);
System.out.println(s2);
// StringBulider synchronized关键字表示同步
//单线程访问时候使用,效率更高,线程不安全
//StringBuffer:多线程访问时使用,效率较低,线程安全
}
}