Java可变字符串

Java中StringBuilder和StringBuffer类


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

StringBuilder和StringBuffer之间的不同点:

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

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

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

String和StringBuilder以及StringBuffer的关系图:

Java可变字符串_第1张图片

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

你可能感兴趣的:(Java可变字符串)