如何操作字符串?
*字符串就是一连串的字符序列,Java提供了String和StringBuffer两个类来封装字符串,并且提供了一系列的方法来操作字符串对象
什么是String,StringBuffer,StringBuilder?
String类是不可变类,即一旦一个String对象被创建之后,包含在这个对象中的字符序列是不可改变的,直到这个对象被销毁
StringBuffer代表着一个字符序列可变的字符串,当一个StringBuffer被创建之后,通过StringBuffer提供的一系列方法可以改变字符串对象的字符序列,如果StringBuffer生成完毕,可以调用toString()方法将其转换为String对象
StringBuilder类(jdk 1.5新增),也代表着字符串对象,StringBuffer和StringBuider基本 相似,两个类的构造器和方法也基本相同。不同的是,StringBuffer线程安全,StringBuilder没有实现线程安全(所以效率略高),一般情况下优先使用StringBuffer
*String
作为最基础的操作字符串类,java提供了若干api
看看其他大佬的总结吧:
https://www.cnblogs.com/cisum/p/8011485.html
*StringBuffer&&StringBuidler(由于二者用法大致相同,所以以StringBuffer为例)
1.StringBuffer和StringBuilder有两个属性:length和capacity,length包含着字符序列的长度,capacity包含着字符序列的容量(一般不考虑),由于StringBuffer和StringBuilder的长度是可变的,所以可以使用setLength(int len)方法来访问和修改字符序列的长度
2.如何使用StringBuffer
2-1:提供的api
append() 进行字符串的追加
insert() 进行字符串的插入
replace()进行字符串的替换
delete()进行字符串的删除
reverse() 进行字符串的反转
setLength() 设置字符串的长度
举个栗子:
public class StringBufferTest {
/**
* 由于StringBuffer和StringBuilder的关键在于线程是否是安全的 用法大致相同
* */
public static void main(String[]args){
StringBuffer sb=new StringBuffer();
//进行字符的追加
sb.append("java");
//字符的插入
sb.insert(0,"hello ");
//字符的替换(由start进行替换 直到end结束)
sb.replace(5,6,",");
//删除(从start处开始进行删除,直到end结束)
//sb.delete(5,6);
//进行反转
// sb.reverse();
System.out.println(sb);
/**
*StringBuilder有两个属性length() capacity()
* */
System.out.println(sb.length());
System.out.println(sb.capacity());
System.out.println("进行字符串的长度修改");
/**
* 只留下前面三位
* */
sb.setLength(3);
System.out.println(sb);
}
}
result: