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()方法。


相关文章
|
4月前
|
编解码 Java 开发者
Java String类的关键方法总结
以上总结了Java `String` 类最常见和重要功能性方法。每种操作都对应着日常编程任务,并且理解每种操作如何影响及处理 `Strings` 对于任何使用 Java 的开发者来说都至关重要。
359 5
|
7月前
|
Java
介绍String.format()方法中的格式占位符用法。
通过综合使用它们,可以在Java中构造非常具体和高度定制的输出格式。这对于输出报道、创建用户界面或者任何需要精确控制输出格式的场合都非常有用。记住,当使用格式化方法时,需要确保提供的输入参数与占位符类型匹配,否则会抛出 java.util.IllegalFormatException。
925 0
|
8月前
|
存储 安全 Java
String StringBuffer StringBuilder 区别详解与对比分析
本文详细解析了Java中String、StringBuffer和StringBuilder的区别,从可变性、线程安全性和性能三个方面进行对比,并结合具体应用场景分析了三者的适用范围。通过性能测试示例展示了它们在字符串拼接时的效率差异,同时提供了实际代码案例帮助理解。总结指出,String适合少量操作或线程安全场景,StringBuffer适用于多线程环境,而StringBuilder则在单线程下性能最优。开发者应根据需求选择合适的类以优化程序性能。文末还附有相关面试资料供参考。
1231 2
|
存储 安全 Java
String、StringBuffer 和 StringBuilder 的区别
【10月更文挑战第21天】String、StringBuffer 和 StringBuilder 都有各自的特点和适用场景。了解它们之间的区别,可以帮助我们在编程中更合理地选择和使用这些类,从而提高程序的性能和质量。还可以结合具体的代码示例和实际应用场景,进一步深入分析它们的性能差异和使用技巧,使对它们的理解更加全面和深入。
642 57
|
Java
【编程基础知识】(讲解+示例实战)方法参数的传递机制(值传递及地址传递)以及String类的对象的不可变性
本文深入探讨了Java中方法参数的传递机制,包括值传递和引用传递的区别,以及String类对象的不可变性。通过详细讲解和示例代码,帮助读者理解参数传递的内部原理,并掌握在实际编程中正确处理参数传递的方法。关键词:Java, 方法参数传递, 值传递, 引用传递, String不可变性。
334 1
【编程基础知识】(讲解+示例实战)方法参数的传递机制(值传递及地址传递)以及String类的对象的不可变性
String、StringBuffer、StringBuilder的区别
String 由 char[] 数组构成,使用了 final 修饰,对 String 进行改变时每次都会新生成一个 String 对象,然后把指针指向新的引用对象。 StringBuffer可变并且线程安全;有一定缓冲区容量,字符串大小没超过容量,不会重新分配新的容量,适合多线程操作字符串; StringBuiler可变并且线程不安全。速度比StringBuffer更快,适合单线程操作字符串。 操作少量字符数据用 String;单线程操作大量数据用 StringBuilder;多线程操作大量数据用 StringBuffer
|
canal 安全 索引
(StringBuffer和StringBuilder)以及回文串,字符串经典习题
(StringBuffer和StringBuilder)以及回文串,字符串经典习题
174 5
|
JavaScript 前端开发 开发者