目录
1.StringBuffer类Api
1).构造方法
2).append("添加的字符串内容")
3).insert(int 要添加数据到指定索引后,"要添加的字符串")
4).delete(int 起始索引位置,int 结束索引位置)
5).deleteCharAt(int 指定索引)
6).replace(int 要替换字符串起始索引,int 要替换字符串结束索引,String 要替换的新内容)
7).reverse()
8).toString()
9).length()
10).capacity()
11).ensureCapacity(int 最少容量)
12).char charAt(int 指定索引位置)
13).setChar(int 要修改字符的索引,char 替换旧字符的新字符串)
14).CharSequence subSequence(int 要截取字符串的起始位置 ,int 要截取字符串的结束位置)
15).getChars(int 要复制内容的起始索引,int 要复制内容的结束索引(不包括),char[] 接受复制内容的字符数组,int )
案例:StringBuffer类的使用
1.代码
2.效果
2.StringBuilder类Api
构造方法
常用方法
1)append(在末尾追加数据的内容)
2)insert(int 要插入指定索引的位置, 插入内容的字符串)
3)delete(int start, int end)
4)deleteCharAt(int 要删除字符的索引)
5)replace(int 要替换字符串的索引位置开始, int 要替换索引的结束位置, String 替换内容的字符串)
6)reverse()
8)length()
9)capacity()
10)ensureCapacity(int 最小容量)
11)char charAt(int 索引位置)
13)StringBuilder subSequence(int 起始索引(包含), int 结束索引(不包含))
14)SgetChars(int 要复制内容索引的起始位置, int 要复制内容索引的结束位置, char[] dst, int dstBegin)
案例:StringBuilder的使用
1.代码
2.效果
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"); } }