Java基础-StringBuffer常用方法

StringBuffer类

StringBuffer类和String一样,也用来代表字符串。只是由于StringBuffer的内部实现方式和String不同,所以StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类。所以在实际使用时,如果经常需要对一个字符串进行修改,例如插入、删除等操作,使用StringBuffer要更加适合一些。在StringBuffer类中存在很多和String类一样的方法,这些方法在功能上和String类中的功能是完全一样的。但是,对StringBuffer对象的每次修改都会改变对象自身,这点是和String类最大的区别。另外由于StringBuffer是线程安全的,所以在多线程程序中也可以很方便的进行使用,但是程序的执行效率相对来说就要稍微慢一些。

StringBuffer构造方法

StringBuffer s = new StringBuffer(); //这样初始化出的StringBuffer对象是一个空的对象。

StringBuffer s = new StringBuffer(“abc”); //这样初始化出的StringBuffer对象的内容就是字符串”abc”。

需注意,StringBuffer和String属于不同的类型,也不能直接进行强制类型转换,下面的代码都是错误的:

StringBuffer s = "abc";               //赋值类型不匹配
StringBuffer s = (StringBuffer)"abc";    //不存在继承关系,无法进行强转

StringBuffer对象和String对象之间的互转的代码如下:

String s = "abc";
StringBuffer s2sb = new StringBuffer(s);   //String转换为StringBuffer

StringBuffer sb = new StringBuffer("123");         
String sb2s = sb.toString();              //StringBuffer转换为String

StringBuffer常用方法

1)增
StringBuffer append(data);尾部添加

StringBuffer sb = new StringBuffer("abc");

sb.append(true);  //则对象sb的值将变成”abctrue”。


StringBuffer insert(index,data);指定位置插入

StringBuffer sb = new StringBuffer(“TestString”);

sb.insert(4,false); //对象sb的值是”TestfalseString”

2) 删
StringBuffer delete(int start, int end) 该方法的作用是删除指定区间以内的所有字符,包含start,不包含end索引值的区间。例如:

StringBuffer sb = new StringBuffer("TestString");

sb. delete (1,4);  //对象sb的值是”TString

StringBuffer deleteCharAt(int index):删除指定位置的元素

StringBuffer sb = new StringBuffer("Test");

sb. deleteCharAt(1);  //对象sb的值变为”Tst”

3) 改

StringBuffer reverse()将StringBuffer对象中的内容反转,然后形成新的字符串

StringBuffer sb = new StringBuffer("abc");

sb.reverse();  //经过反转以后,对象sb中的内容将变为”cba”

StringBuffer replace(start,end,string);

StringBuffer sb = new StringBuffer("abcdefg");

sb.replace(1,4,"@@");  //经过替换以后,对象sb中的内容将变为”a@@efg”

setCharAt(int index, char ch);修改对象中索引值为index位置的字符为新的字符ch

StringBuffer sb = new StringBuffer("abc");

sb.setCharAt(1,’D’);  // 则对象sb的值将变成”aDc”                      

4) 查
char charAt(index i);取出下标为i的字符

StringBuffer sb = new StringBuffer("abc");

System.out.println(sb.charAt(1))   //结果为b

int indexOf(string);方法返回该字符串指定的子串中第一次出现处的索引。如果没有找到一个子串,则返回-1。

StringBuffer buff = new StringBuffer("programming language");

System.out.println("Index of substring  = " + buff.indexOf("age")); // 17
System.out.println("Index of substring  = " + buff.indexOf("k"));   // -1


猜你喜欢

转载自blog.csdn.net/weixin_42782897/article/details/89006105