76.StringBuffer和StringBuilder基本用法

  1. StringBuffer JDK1.0版本提供的类,线程安全,做线程同步检查, 效率较低。

  2. StringBuilder JDK1.5版本提供的类,线程不安全,不做线程同步检查,因此效率较高。 建议采用该类。

常用方法列表:
  1. 重载的public StringBuilder append(…)方法

可以为该StringBuilder 对象添加字符序列,仍然返回自身对象。

  1. 方法 public StringBuilder delete(int start,int end)

可以删除从start开始到end-1为止的一段字符序列,仍然返回自身对象。

  1. 方法 public StringBuilder deleteCharAt(int index)

移除此序列指定位置上的 char,仍然返回自身对象。

  1. 重载的public StringBuilder insert(…)方法

可以为该StringBuilder 对象在指定位置插入字符序列,仍然返回自身对象。

  1. 方法 public StringBuilder reverse()

用于将字符序列逆序,仍然返回自身对象。

  1. 方法 public String toString() 返回此序列中数据的字符串表示形式。

  2. 和 String 类含义类似的方法:

public int indexOf(String str)
public int indexOf(String str,int fromIndex)
public String substring(int start)
public String substring(int start,int end)
public int length() 
char charAt(int index)
追加单个字符
StringBuilder ssb = new StringBuilder();
		for(int i = 0; i<26; i++) {
			char tmp = (char)('A'+i);
			ssb.append(tmp);  //追加单个字符
		}
toString方法是为了方便所有类的字符串操作打印效果是没
System.out.println(ssb);  System.out.println(ssb.toString);打印效果是没有区别的
通过索引修改字符
ssb.setCharAt(0, 'z');  //通过索引修改字符

在这里插入图片描述

插入字符串
System.out.println(ssb);
		ssb.insert(0, 'A').insert(1, 'l').insert(2, 'p').
		insert(3, 'h').insert(4, 'a').insert(5, 'b').
		insert(6, 'e').insert(7, 't').insert(8, ':');  //插入字符串

如上图源码,由于insert函数返回的this,所以可以链式调用

在这里插入图片描述

通过索引删除某个字符
ssb.deleteCharAt(0).deleteCharAt(0);  //通过索引删除某个字符

如上图源码,deleteCharAt函数返回的this,可以链式调用与insert类似

在这里插入图片描述

通过索引删除某个字符区间[)
ssb.delete(0, 7);  //[start, end)

start和end两个下标,左闭右开

如上图源码,delete函数返回的this,可以链式调用与deleteCharAt和insert类似

以上是对下面StringBuilder部分的分析,StringBuffer大体上差不多

package yzy.commonclasses;
/*
 * 测试StringBuilder,StringBuffer可变字符序列常用方法
 */
public class testStringBuilder2 {
	public static void main(String[] args) {
		String str = new String("helle");
		System.out.println(str);
		System.out.println(str.toString());  //toString方法是为了方便所有类的字符串操作打印效果是没有区别的
		
		StringBuilder ssb = new StringBuilder();
		for(int i = 0; i<26; i++) {
			char tmp = (char)('A'+i);
			ssb.append(tmp);  //追加单个字符
		}
		System.out.println(ssb);  //System.out.println(ssb.toString);打印效果是没有区别的
		ssb.reverse();
		System.out.println(ssb);
		
		ssb.setCharAt(0, 'z');  //通过索引修改字符
		System.out.println(ssb);
		ssb.insert(0, 'A').insert(1, 'l').insert(2, 'p').
		insert(3, 'h').insert(4, 'a').insert(5, 'b').
		insert(6, 'e').insert(7, 't').insert(8, ':');  //插入字符串
		System.out.println(ssb);
		
		
		ssb.deleteCharAt(0).deleteCharAt(0);  //通过索引删除某个字符串
		System.out.println(ssb);
		ssb.delete(0, 7);  //通过索引删除某个字符区间[)
		System.out.println(ssb);
		
		
		
		
		//StringBuffer与StringBuilder常用方法几乎差不多
		StringBuffer ssb1 = new StringBuffer();
		for(int i = 0; i<26; i++) {
			char tmp = (char)('A'+i);
			ssb1.append(tmp);  //追加单个字符
		}
		System.out.println(ssb1);
		ssb1.reverse();
		System.out.println(ssb1);
		
		ssb1.setCharAt(0, 'z');
		System.out.println(ssb);
		ssb1.insert(0, 'A').insert(1, 'l').insert(2, 'p').
		insert(3, 'h').insert(4, 'a').insert(5, 'b').
		insert(6, 'e').insert(7, 't').insert(8, ':');  //插入字符串
		System.out.println(ssb1);
		
		ssb1.deleteCharAt(0).deleteCharAt(0);  //获取某个字符
		System.out.println(ssb1);
		ssb1.delete(0, 7);  //[)
		System.out.println(ssb1);
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值