StringBuilder和StringBuffer的常用方法

简介: StringBuilder和StringBuffer的常用方法

常用的方法:

方法 说明
StringBuff append(String
str)
在尾部追加,相当于String的+=,可以追加:boolean、char、char[]、
double、float、int、long、Object、String、StringBuff的变量
char charAt(int index) 获取index位置的字符
int length() 获取字符串的长度
int capacity() 获取底层保存字符串空间总的大小
void ensureCapacity(int
mininmumCapacity)
扩容
void setCharAt(int index,
char ch)
将index位置的字符设置为ch
int indexOf(String str) 返回str第一次出现的位置
int indexOf(String str, int
fromIndex)
从fromIndex位置开始查找str第一次出现的位置
int lastIndexOf(String str) 返回最后一次出现str的位置
int lastIndexOf(String str,
int fromIndex)
从fromIndex位置开始找str最后一次出现的位置
StringBuff insert(int
offset, String str)
在offset位置插入:八种基类类型 & String类型 & Object类型数据
StringBuffer
deleteCharAt(int index)
删除index位置字符
StringBuffer delete(int
start, int end)
删除[start, end)区间内的字符
StringBuffer replace(int
start, int end, String str)
将[start, end)位置的字符替换为str
String substring(int start) 从start开始一直到末尾的字符以String的方式返回
String substring(int
start,int end)
将[start, end)范围内的字符以String的方式返回
StringBuffer reverse() 反转字符串
String toString() 将所有字符按照String的方式返回
1. StringBuffer stringBuffer01 = new StringBuffer();
2. StringBuffer stringBuffer02 = new StringBuffer();
3. 
4. //1.StringBuffer append(String str) 
5. //将指定的字符串附加到此字符序列。(不一定是String类型,很多均可)
6. stringBuffer01.append("Hellojava"); //此时stringBuffer01的内容为"Hellojava"。
7. stringBuffer02.append(123456); //此时stringBuffer02的内容为"123456"。
8. 
9. //2.int capacity() 
10. //返回当前容量。
11. System.out.println(stringBuffer01.capacity()); //输出为16
12. 
13. //3.char charAt(int index) 
14. //返回 char在指定索引在这个序列值。 
15. System.out.println(stringBuffer01.charAt(0)); //输出"H"
16. 
17. //4.StringBuffer delete(int start, int end) 
18. //删除此序列的子字符串中的字符。 区间前闭后开。
19. System.out.println(stringBuffer02.delete(0, 2));//此时stringBuffer02为"3456"
20. 
21. //5.StringBuffer deleteCharAt(int index) 
22. //删除 char在这个序列中的指定位置。 
23. System.out.println(stringBuffer02.deleteCharAt(0)); //此时stringBuffer02为456
24. 
25. //6.int indexOf(String str) 
26. //返回指定子字符串第一次出现的字符串内的索引。
27. System.out.println(stringBuffer01.indexOf("java"));//输出为5
28. 
29. //7.StringBuffer insert(int offset, String str) 
30. //将字符串插入到此字符序列中。  
31. System.out.println(stringBuffer02.insert(0, "123"));//此时stringBuffer02为123456
32. 
33. //8.int lastIndexOf(String str) 
34. //返回指定子字符串最右边出现的字符串内的索引。
35. StringBuffer stringBuffer03 = new StringBuffer("12345123");
36. System.out.println(stringBuffer03);
37. System.out.println(stringBuffer03.lastIndexOf("123")); //输出5
38. 
39. //9.int length() 
40. //返回长度(字符数)。 
41. System.out.println(stringBuffer03.length()); //输出为8
42. 
43. //10.StringBuffer replace(int start, int end, String str) 
44. //用指定的String中的字符替换此序列的子字符串中的 String。(前闭后开)
45. System.out.println(stringBuffer03.replace(5,8,"6789")); //此时stringBuffer03为"123456789"
46. 
47. //11.StringBuffer reverse() 
48. //导致该字符序列被序列的相反代替。 
49. System.out.println(stringBuffer03.reverse()); //此时stringBuffer03为987654321
50. 
51. //12.void setCharAt(int index, char ch) 
52. //指定索引处的字符设置为 ch 。 
53. stringBuffer03.setCharAt(0, 'x');
54. System.out.println(stringBuffer03); //此时stringBuffer03为"x87654321"
55. 
56. //13.void setLength(int newLength) 
57. //设置字符序列的长度。 
58. stringBuffer03.setLength(14);
59. 
60. //14.String substring(int start) 
61. //返回一个新的 String ,其中包含此字符序列中当前包含的字符的子序列。 
62. System.out.println(stringBuffer03.substring(4)); //输出"54321"
63. 
64. //15.String substring(int start, int end) 
65. //返回一个新的 String ,其中包含此序列中当前包含的字符的子序列。(前闭后开) 
66. System.out.println(stringBuffer03.substring(4,7)); //输出"543"
67. 
68. //16.String toString() 
69. //返回表示此顺序中的数据的字符串。 
70. String s = stringBuffer03.toString();
71. System.out.println(s); //s为"x87654321"

注意:String和StringBuilder类不能直接转换。如果要想互相转换,可以采用如下原则:

String变为StringBuilder: 利用StringBuilder的构造方法或append()方法。

StringBuilder变为String: 调用toString()方法。


相关文章
|
1月前
|
Java
【编程基础知识】(讲解+示例实战)方法参数的传递机制(值传递及地址传递)以及String类的对象的不可变性
本文深入探讨了Java中方法参数的传递机制,包括值传递和引用传递的区别,以及String类对象的不可变性。通过详细讲解和示例代码,帮助读者理解参数传递的内部原理,并掌握在实际编程中正确处理参数传递的方法。关键词:Java, 方法参数传递, 值传递, 引用传递, String不可变性。
55 1
【编程基础知识】(讲解+示例实战)方法参数的传递机制(值传递及地址传递)以及String类的对象的不可变性
|
2月前
|
安全 Java
String、StringBuffer、StringBuilder的区别
这篇文章讨论了Java中String、StringBuffer和StringBuilder的区别。String是不可变的,每次操作都会产生新的对象,效率低且浪费内存。StringBuilder可以在原字符串基础上进行操作,不开辟额外内存,弥补了String的缺陷。StringBuffer和StringBuilder类似,但StringBuffer的方法是线程安全的。文章还列举了StringBuffer的常用方法,并提供了使用示例代码。最后总结了这三者的主要区别。
String、StringBuffer、StringBuilder的区别
|
14天前
|
JavaScript 前端开发 开发者
|
1月前
|
canal 安全 索引
(StringBuffer和StringBuilder)以及回文串,字符串经典习题
(StringBuffer和StringBuilder)以及回文串,字符串经典习题
33 5
|
23天前
|
存储 安全 Java
String、StringBuffer 和 StringBuilder 的区别
【10月更文挑战第21天】String、StringBuffer 和 StringBuilder 都有各自的特点和适用场景。了解它们之间的区别,可以帮助我们在编程中更合理地选择和使用这些类,从而提高程序的性能和质量。还可以结合具体的代码示例和实际应用场景,进一步深入分析它们的性能差异和使用技巧,使对它们的理解更加全面和深入。
14 0
|
2月前
|
JavaScript 前端开发 API
javaScript中常用的String方法以及注意点总结
本文总结了JavaScript中常用的String对象的方法及其注意事项,包括大小写转换、字符获取、子字符串截取、字符串拼接、去除空格、替换、分割以及查找字符串中字符的索引等操作。提供了每种方法的使用示例代码,帮助理解它们的具体用法和差异。
38 2
|
2月前
|
安全 Java
Java StringBuffer 和 StringBuilder 类详解
在 Java 中,`StringBuffer` 和 `StringBuilder` 用于操作可变字符串,支持拼接、插入、删除等功能。两者的主要区别在于线程安全性和性能:`StringBuffer` 线程安全但较慢,适用于多线程环境;`StringBuilder` 非线程安全但更快,适合单线程环境。选择合适的类取决于具体的应用场景和性能需求。通常,在不需要线程安全的情况下,推荐使用 `StringBuilder` 以获得更好的性能。
|
3月前
|
JavaScript 算法 前端开发
JS算法必备之String常用操作方法
这篇文章详细介绍了JavaScript中字符串的基本操作,包括创建字符串、访问特定字符、字符串的拼接、位置查找、大小写转换、模式匹配、以及字符串的迭代和格式化等方法。
JS算法必备之String常用操作方法
|
2月前
|
Java 索引
java基础扫盲-String类常用的方法
java基础扫盲-String类常用的方法
|
3月前
|
API C# 开发者
WPF图形绘制大师指南:GDI+与Direct2D完美融合,带你玩转高性能图形处理秘籍!
【8月更文挑战第31天】GDI+与Direct2D的结合为WPF图形绘制提供了强大的工具集。通过合理地使用这两种技术,开发者可以创造出性能优异且视觉效果丰富的WPF应用程序。在实际应用中,开发者应根据项目需求和技术背景,权衡利弊,选择最合适的技术方案。
148 0