目录
3).insert(int 要添加数据到指定索引后,"要添加的字符串")
4).delete(int 起始索引位置,int 结束索引位置)
6).replace(int 要替换字符串起始索引,int 要替换字符串结束索引,String 要替换的新内容)
13).setChar(int 要修改字符的索引,char 替换旧字符的新字符串)
14).CharSequence subSequence(int 要截取字符串的起始位置 ,int 要截取字符串的结束位置)
15).getChars(int 要复制内容的起始索引,int 要复制内容的结束索引(不包括),char[] 接受复制内容的字符数组,int )
2)insert(int 要插入指定索引的位置, 插入内容的字符串)
5)replace(int 要替换字符串的索引位置开始, int 要替换索引的结束位置, String 替换内容的字符串)
13)StringBuilder subSequence(int 起始索引(包含), int 结束索引(不包含))
14)SgetChars(int 要复制内容索引的起始位置, int 要复制内容索引的结束位置, char[] dst, int dstBegin)
1.StringBuffer类Api
StringBuffer
类是 Java 中用于处理可变字符串的一个线程安全的类。它允许你修改字符串内容而不创建新的对象,这对于大量字符串操作来说是非常高效的。
1).构造方法
StringBuffer()
:默认构造函数,创建一个空的 StringBuffer 对象。
StringBuffer sb = new StringBuffer();
StringBuffer(int capacity)
:创建一个具有指定初始容量的 StringBuffer 对象。
StringBuffer sb = new StringBuffer(50);
StringBuffer(String str)
:使用给定的 String 初始化 StringBuffer 对象。
StringBuffer sb = new StringBuffer("Hello");
2).append("添加的字符串内容")
将指定的数据追加到此序列的末尾。
StringBuffer sb = new StringBuffer("Hello"); sb.append(" World"); // "Hello World"
3).insert(int 要添加数据到指定索引后,"要添加的字符串")
在此序列中指定的位置插入指定数据。
StringBuffer sb = new StringBuffer("HelloWorld"); sb.insert(5, " "); // "Hello World"
4).delete(int 起始索引位置,int 结束索引位置)
删除从 start
到 end-1
位置之间的子串。
StringBuffer sb = new StringBuffer("Hello World"); sb.delete(6, 11); // "Hello"
5).deleteCharAt(int 指定索引)
删除位于 index
位置的字符。
StringBuffer sb = new StringBuffer("Hello"); sb.deleteCharAt(0); // "ello"
6).replace(int 要替换字符串起始索引,int 要替换字符串结束索引,String 要替换的新内容)
使用指定的字符串替换此序列中的子串。
StringBuffer sb = new StringBuffer("Hello World"); sb.replace(7, 12, "Java"); // "Hello Java"
7).reverse()
将此序列中的字符顺序反转。
StringBuffer sb = new StringBuffer("Hello"); sb.reverse(); // "olleH"
8).toString()
返回一个与 StringBuffer 内容相同的字符串对象。
StringBuffer sb = new StringBuffer("Hello"); String s = sb.toString(); // "Hello"
9).length()
返回此序列中的字符数。
StringBuffer sb = new StringBuffer("Hello"); int len = sb.length(); // 5
10).capacity()
返回当前容量(即可以存储的字符数,不包括任何可能发生的自动扩容)。
StringBuffer sb = new StringBuffer(); int cap = sb.capacity(); // 默认初始容量通常是 16
11).ensureCapacity(int 最少容量)
确保容量至少达到指定的最小值。如果现有容量小于新指定的最小容量,则增加容量。
StringBuffer sb = new StringBuffer(); sb.ensureCapacity(100); // 现在sb至少能容纳100个字符
12).char charAt(int 指定索引位置)
返回指定索引处的字符。
StringBuffer sb = new StringBuffer("Hello"); char ch = sb.charAt(1); // 'e'
13).setChar(int 要修改字符的索引,char 替换旧字符的新字符串)
修改指定索引处的字符。
StringBuffer sb = new StringBuffer("Hello"); sb.setCharAt(1, 'a'); // "Hallo"
14).CharSequence subSequence(int 要截取字符串的起始位置 ,int 要截取字符串的结束位置)
返回一个新的字符序列,它是此序列的一个子序列。
StringBuffer sb = new StringBuffer("Hello World"); CharSequence cs = sb.subSequence(0, 5); // "Hello"
15).getChars(int 要复制内容的起始索引,int 要复制内容的结束索引(不包括),char[] 接受复制内容的字符数组,int )
将此序列的一部分复制到目标数组中。
StringBuffer sb = new StringBuffer("Hello"); char[] dst = new char[5]; sb.getChars(0, 5, dst, 0); // dst 现在包含 {'H', 'e', 'l', 'l', 'o'}
案例:StringBuffer类的使用
1.代码
package org.xiji.mystring; public class MyStringBuffer { public static void main(String[] args) { StringBuffer sbs = new StringBuffer("hello"); System.out.println("StringBuffer的初始化:"+sbs); // 追加字符串 sbs.append(" world"); System.out.println("StringBuffer的追加字符串:"+sbs); // 插入字符串 sbs.insert(5,"java"); System.out.println("StringBuffer的插入字符串:"+sbs); // 删除字符串 sbs.delete(5,9); System.out.println("StringBuffer的删除字符串:"+sbs); System.out.println("StringBuffer的长度:"+sbs.length()); sbs.reverse(); System.out.println("StringBuffer的翻转字符串:"+sbs); } }
2.效果
2.StringBuilder类Api
StringBuilder
类在 Java 中用于处理可变字符串。与 StringBuffer
类似,它允许你在不创建新对象的情况下修改字符串内容。但是,StringBuilder
不是线程安全的,因此在单线程环境下性能更优.
构造方法
-
StringBuilder()
:构造一个空的StringBuilder
对象。StringBuilder sb = new StringBuilder();
-
StringBuilder(int capacity)
:构造一个具有指定初始容量的StringBuilder
对象。StringBuilder sb = new StringBuilder(100);
-
StringBuilder(String str)
:构造一个包含指定字符串的StringBuilder
对象。StringBuilder sb = new StringBuilder("Hello");
常用方法
-
1)append(在末尾追加数据的内容)
- 将指定的数据追加到此序列的末尾。
StringBuilder sb = new StringBuilder("Hello"); sb.append(" World"); // "Hello World"
- 将指定的数据追加到此序列的末尾。
-
2)insert(int 要插入指定索引的位置, 插入内容的字符串)
- 在此序列中指定的位置插入指定数据。
StringBuilder sb = new StringBuilder("HelloWorld"); sb.insert(5, " "); // "Hello World"
- 在此序列中指定的位置插入指定数据。
-
3)delete(int start, int end)
- 删除从
start
到end-1
位置之间的子串。StringBuilder sb = new StringBuilder("Hello World"); sb.delete(6, 11); // "Hello"
- 删除从
-
4)deleteCharAt(int 要删除字符的索引)
- 删除位于
index
位置的字符。StringBuilder sb = new StringBuilder("Hello"); sb.deleteCharAt(0); // "ello"
- 删除位于
-
5)replace(int 要替换字符串的索引位置开始, int 要替换索引的结束位置, String 替换内容的字符串)
- 使用指定的字符串替换此序列中的子串。
StringBuilder sb = new StringBuilder("Hello World"); sb.replace(7, 12, "Java"); // "Hello Java"
- 使用指定的字符串替换此序列中的子串。
-
6)reverse()
- 将此序列中的字符顺序反转。
StringBuilder sb = new StringBuilder("Hello"); sb.reverse(); // "olleH"
- 将此序列中的字符顺序反转。
-
7)toString()
- 返回一个与
StringBuilder
内容相同的字符串对象。StringBuilder sb = new StringBuilder("Hello"); String s = sb.toString(); // "Hello"
- 返回一个与
-
8)length()
- 返回此序列中的字符数。
StringBuilder sb = new StringBuilder("Hello"); int len = sb.length(); // 5
- 返回此序列中的字符数。
-
9)capacity()
- 返回当前容量(即可以存储的字符数,不包括任何可能发生的自动扩容)。
StringBuilder sb = new StringBuilder(); int cap = sb.capacity(); // 默认初始容量通常是 16
- 返回当前容量(即可以存储的字符数,不包括任何可能发生的自动扩容)。
-
10)ensureCapacity(int 最小容量)
- 确保容量至少达到指定的最小值。如果现有容量小于新指定的最小容量,则增加容量。
StringBuilder sb = new StringBuilder(); sb.ensureCapacity(100); // 现在sb至少能容纳100个字符
- 确保容量至少达到指定的最小值。如果现有容量小于新指定的最小容量,则增加容量。
-
11)char charAt(int 索引位置)
- 返回指定索引处的字符。
StringBuilder sb = new StringBuilder("Hello"); char ch = sb.charAt(1); // 'e'
- 返回指定索引处的字符。
-
12)setCharAt(int 指定索引位置, char 要替换的新字符串)
- 修改指定索引处的字符。
StringBuilder sb = new StringBuilder("Hello"); sb.setCharAt(1, 'a'); // "Hallo"
- 修改指定索引处的字符。
-
13)StringBuilder subSequence(int 起始索引(包含), int 结束索引(不包含))
- 返回一个新的字符序列,它是此序列的一个子序列。
StringBuilder sb = new StringBuilder("Hello World"); CharSequence cs = sb.subSequence(0, 5); // "Hello"
- 返回一个新的字符序列,它是此序列的一个子序列。
-
14)SgetChars(int 要复制内容索引的起始位置, int 要复制内容索引的结束位置, char[] dst, int dstBegin)
- 将此序列的一部分复制到目标数组中。
StringBuilder sb = new StringBuilder("Hello"); char[] dst = new char[5]; sb.getChars(0, 5, dst, 0); // dst 现在包含 {'H', 'e', 'l', 'l', 'o'}
- 将此序列的一部分复制到目标数组中。
案例:StringBuilder的使用
1.代码
package org.xiji.mystring; public class MyStringBuilder { public static void main(String[] args) { // 创建一个 StringBuilder 对象 StringBuilder sb = new StringBuilder("Hello"); System.out.println("输出Stringbuild: "+ sb); // 追加字符串 sb.append(" World"); // "Hello World" System.out.println("输出Stringbuild的追加字符串: "+ sb); // 插入空格 sb.insert(5, " "); // "Hello World" System.out.println("输出Stringbuild的插入空格: "+ sb); // 删除部分字符串 sb.delete(5, 7); // "Hello World" System.out.println("输出Stringbuild的删除部分字符串: "+ sb); // 替换部分字符串 sb.replace(7, 12, "Java"); // "Hello Java" System.out.println("输出Stringbuild的替换部分字符串: "+ sb); // 反转字符串 sb.reverse(); // "avaJ olleH" System.out.println("输出Stringbuild的反转字符串: "+ sb); // 转换成字符串 String result = sb.toString(); // "avaJ olleH" System.out.println("输出Stringbuild转换成字符串: "+ result); // 打印结果 System.out.println(result); // 输出: avaJ olleH System.out.println("Hello World"); } }