Java可变字符串

Java中StringBuilder和StringBuffer类


当对字符串进行修改的时候,需要使用StringBuilder和StringBuffer。

StringBuilder和StringBuffer之间的不同点:

1.StringBuilder的方法是线程不安全的(不能同步访问),

StringBuffer是线程安全的(同步访问);

2.StringBuilder由于线程不安全,比StringBuffer 有速度优势。

String和StringBuilder以及StringBuffer的关系图:

Java可变字符串

一、StringBuilder和StringBuffer的构造函数:

1.StringBuilder()

构造空的StringBuilder字符串,初始容量为 16 个字符。

StringBuilder builder = new StringBuilder();

2.StringBuilder(Char c)

构造Char 类型的StringBuilder字符串。

StringBuilder builder = new StringBuilder('a');

3.StringBuilder(int i)

构造初始容量为i的StringBuilder字符串。

StringBuilder builder = new StringBuilder(10);

4.StringBuilder(String str)

构造带字符串str的StringBuilder字符串。

StringBuilder builder = new StringBuilder("abc");

二、StringBuilder和StringBuffer主要方法:

1.append(type s)

将type类型的s追加到序列(type可以是8种基本数据类型和String,Object形式)。

StringBuilder builder = new StringBuilder("abc");

builder.append("de");

System.out.println(builder);

输出结果:abcde

2.reverse()

将序列倒序。

StringBuilder str = new StringBuilder("abc");

System.out.println(str.reverse());

输出结果:cba

3.delete(int start, int end)

移除序列中指定的的字符,指定开始位置和结束位置(大于等于start,小于end)。

StringBuilder str = new StringBuilder("abcdefg");

str.delete(4, 9);

System.out.println(str);

输出结果:abcfg

4.insert(int s, type i)

在序列中s处,将type类型的字符串插入序列中(type可以是8种基本数据类型和String,Object形式)。

StringBuilder str = new StringBuilder("abcdefg");

str.insert(2, 34);

System.out.println(str.toString());

输出结果:ab34cdefg

5.replace(int start, int end, String str)

用给定的str替换序列中指定的字符,指定开始位置和结束位置(大于等于start,小于end)。

StringBuilder str = new StringBuilder("abcdefg");

str.replace(2,5,"java");

System.out.println(str);

输出结果:abjavafg

6.int capacity()

返回长度。

StringBuilder str = new StringBuilder("abc");

System.out.println(str.capacity());

输出结果:19(默认长度加上所赋值的长度)

7.ensureCapacity(int mix)

设定字符串的容量至少等于mix。

8.getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)

将字符从序列复制到目标字符数组dst。

被复制的第一个字符是srcBegin处;被复制的最后一个字符是srcEnd - 1处,字符复制到dst数组,在dst数组dstBegin处开始粘贴。

StringBuilder str = new StringBuilder("java programming");

char[] cArr = new char[]{'t','u','t','o','r','i','a','l','s'};

str.getChars(5, 10, cArr, 3);

System.out.println(cArr);

输出结果:tutprogrs

9.setCharAt(int index, char c)

将index处的字符设置为c。

10.setLength(int i)

设置字符序列的长度为i。

11.subSequence(int start, int end)

截取字符串,指定开始位置和结束位置(大于等于start,小于end)。

StringBuilder str = new StringBuilder("administrator");

cSeq = str.subSequence(0,5);

System.out.println(cSeq);

输出结果:admin

三、StringBuilder和StringBuffer的其他方法(和上一篇中String方法一致):

1.char charAt(int index)

2.int indexOf(String str)

3.int indexOf(String str, int fromIndex)

4.int lastIndexOf(String str)

5.int lastIndexOf(String str, int fromIndex)

6.int length()

7.substring(int start)

8.substring(int start, int end)

9.toString()

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值