前言:
而今我们对“javastringbuffer替换字符串”大约比较关怀,朋友们都想要学习一些“javastringbuffer替换字符串”的相关内容。那么小编同时在网摘上搜集了一些对于“javastringbuffer替换字符串””的相关资讯,希望大家能喜欢,朋友们一起来了解一下吧!java StringBuffer类有哪些方法?[java培训]
更新时间:2020年01月08日16时37分 来源:叩丁狼学院 浏览次数:
由于字符串是常量,因此一旦创建,其内容和长度是不可改变的。如果需要对一个字符串进行修改,则只能创建新的字符串。为了便于对字符串的修改,在JDK中提供了个StringBuffer类(也称字符串缓冲区)。StringBuffer类和String类最大的区别在于它的内容和长度都是可以改变的。StringBuffer类似一个字符容器,当在其中添加或删除字符时,并不会产生新的StringBuffer对象。针对添加和删除字符的操作,StringBuffer类提供了一系列的方法。
上面表中列出了StringBuffer的一系列常用方法,接下来通过一个案例来学习一下表中方法的具体使用。
public class stringbuffer01{
public static void main(String[] args) {
System.out.println( 1、添加----------
add();
System.out.println( 2、删除----------
remove();
System.out.println( 3、修改---------
alter();
}
public static void add(){
StringBuffer sb=new StringBuffer(); //定义一个字符缓冲区
sb.append( abcdefg
System.out.println( append添加结果: +sb);
sb.insert(2, 123 //在指定位置插入字符串
System.out.println( insert添加结果: +sb);
}
public static void remove() {
StringBuffer sb=new StringBuffer( abcdefg
sb.delete(1,5); //指定范围删除
System.out.println( 删除指定位置的结果: +sb);
sb.deleteCharAt(2); //指定位置删除
System.out.println( 指定删除位置结果: +sb);
sb.delete(0,sb.length()); //清除缓冲区
System.out.println( 清空缓冲区结果: +sb);
}
public static void alter() {
StringBuffer sb=new StringBuffer( abcdef
sb.setCharAt(1, p //修改指定未知字符
System.out.println( 修改指定位置字符结果: +sb);
sb.replace(1, 3, qq
System.out.println( 替换指定未知字符(串)结果: +sb);
System.out.println( 字符串反转结果: +sb.reverse());
}
}
运行结果如下图:
上面案例中涉及到StringBuffer类的很多方法,其中append()和insert(方法是最常用的,并且这两个方法有很多重载形式,它们都用于添加字符。不同的是,append()方法始终将这些字符添加到缓冲区的末尾,而insert()方法则可以在指定的位置添加字符另外,例程中的delete()方法用于删除指定位置的字符,setCharAt()和replace()方法用于替换指定位置的字符,这几个方法都非常简单,在此就不再赘述了。
StringBuffer类和String类有很多相似之处,初学者在使用时很容易混淆。接下来针对这两个类进行对比,简单归纳一下两者的不同,具体如下:
1、String类表示的字符串是常量,一旦创建后,内容和长度都是无法改变的。而StringBuffer表示字符容器,其内容和长度都可以随时修改。在操作字符串时,如果该字符串仅用于表示数据类型,则使用 String类即可,但是如果需要对字符串中的字符进行增删操作,则使用 StringBuffer类。
2、String类覆盖了Object类的equals()方法,而StringBuffer类没有覆盖Object类的equals()方法,具体示例如下
String s1=new String( abc
String s2=new String( abd
System.out.println(s1.equals(s2)); //打印结果为true
StringBuffer sb1=new StingBuffer( abc
StringBuffer sb2=new StringBuffer( abc
System.out.println(sb1.equeals(sb2)); //打印结果为false
String类对象可以用操作符+进行连接,而 String Buffer类对象之间不能,具体例如下:
String s1= a
String s2= b
String s3=s1+s2; //合法
System.out.println(s3); //打印输出ab
StringBuffer sb1=new StringBuffer( a
StringBuffer sb2=new StringBuffer( b
StringBuffer sb3=sb1+sb2; //编译出错