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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值