StringBuilder和StringBuffer
2023-12-17 05:02:52
StringBuiler的介绍
由于
String
的不可更改特性,为了方便字符串的修改,
Java
中又提供
StringBuilder
和
StringBuffer
类。这两个类大部分功能是相同的,这里介绍 StringBuilder
常用的一些方法.
方法 | 功能 |
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
的方式返回
|
下面将以上方法用代码进行使用:
public static void main(String[] args) {
StringBuilder str1 = new StringBuilder("hello");
StringBuilder str2 = str1;
// 追加:即尾插-->字符、字符串、整形数字
str1.append(' ');//hello
str1.append("wolrd");//hello wolrd
str1.append("123");//hello wolrd123
System.out.println(str1);
System.out.println(str1 == str2);//true
System.out.println(str1.charAt(0));//获取0号位置上的h字符
System.out.println(str1.length());//获取字符串的有效长度14
System.out.println(str1.capacity());//获取底层数组的总大小21
str1.setCharAt(0,'H');//设置任意位置的字符
str1.insert(0,"Hellowolrd!!!");//Hellowolrd!!!Hello wolrd123
System.out.println(str1);
System.out.println(str1.indexOf("Hello"));//获取Hello第一次出现的位置
System.out.println(str1.lastIndexOf("Hello"));//获取Hello最后一次出现的位置
str1.deleteCharAt(0);//删除首字符
str1.delete(0,5);//删除[0,5)之间的字符
String sb1 = str1.substring(0,5);//截取[0,5)范围内的字符以String的方式返回
str1.reverse();//将字符串逆转
sb1 = str1.toString();//将StringBuilder以String形式返回
}
从上述例子可以看出:
String
和
StringBuilder
最大的区别在于
String
的内容无法修改,而
StringBuilder
的内容可
以修改
。频繁修改字符串的情况考虑使用
StringBuilder
。
注意:
String
和
StringBuilder
类不能直接转换。如果要想互相转换,可以采用如下原则
:
String
变为
StringBuilder:
利用
StringBuilder
的构造方法或
append()
方法
StringBuilder
变为
String:
调用
toString()
方法.
1. String、StringBuffer、StringBuilder的区别
String
的内容不可修改,
StringBuffer
与
StringBuilder
的内容可以修改
.
StringBuffer
与
StringBuilder
大部分功能是相似的
StringBuffer
采用同步处理,属于线程安全操作;而
StringBuilder
未采用同步处理,属于线程不安全操作.
文章来源:https://blog.csdn.net/weixin_69762204/article/details/135032818
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!