JAVA语言StringBuffer类的使用

      Java里面有3个类是关于字符操作的,分别是CharacterStringStringBufferCharacter只能操作单个字符,String可以对字符串操作,但是这个类不可变,StringBuffer是可变类,也可以操作字符串。这里主要讲StringBuffer类和String的区别。

      StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和String不同,所以StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类。

      在实际使用时,如果经常需要对一个字符串进行修改,例如插入、删除等操作,使用StringBuffer要更加适合一些。

两者有一个最显著的区别在于,对于StringBuffer对象的每次修改都会改变对象自身,这点是和String类最大的区别。StringStringBuffer各有优势和不足,可以根据具体的使用环境,选择对应的类型进行使用。


接下来看下面运行结果是怎样的。

java_StringBuffer.java

public class java_StringBuffer {
	
public static void main(String[] args) {
	structureStr();
	SearchStr();
	LengthStr();
	AppendStr();
	AddAppendStr();
	DeleteStr();
	InsertStr();
	GetCharAtStr();
	ReplaceStr();
	ReverseStr() ;
	SubStr();
}
    /*构造方法 */  
	public static void structureStr(){
		System.out.print("structureStr()\n"); 
		StringBuffer s0=new StringBuffer();//分配了长16字节的字符缓冲区
        StringBuffer s1=new StringBuffer(512);//分配了512字节的字符缓冲区
        StringBuffer s2=new StringBuffer("nothing or the best!");//
		s0.append("I love shenzhen!");
		System.out.print("s0=" + s0.toString()+"\n"+"s1=" + s1.toString()+"\n"+"s2=" + s2.toString()+"\n");
		}
    /* indexOf lastIndexOf方法查找匹配字符串  */  
    public static void SearchStr() {  
	    System.out.print("SearchStr()\n"); 
        StringBuffer sb = new StringBuffer();  
        sb.append("Never regret.If it's good,it's wonderful.If it's bad,it's experience.");  
        // sb.indexOf("it")返回子it在字符串中最先出现的位置,不存在的话就返回负数。  
        System.out.println("sb.indexOf(\"it\")=" + sb.indexOf("it"));  
        // 给indexOf方法设置参数,指定匹配的起始位置  
		System.out.println("sb.indexOf(\"it\")(3)=" + sb.indexOf("it", 3));  
        System.out.println("sb.indexOf(\"it\")(55)=" + sb.indexOf("it", 55));  
        // lastIndexOf方法返回子字符串在字符串中最后出现的位置,不存在的话就返回负数。    
        System.out.println("sb.lastIndexOf(\"it\") = " + sb.lastIndexOf("it"));  
        // 给lastIndexOf方法设置参数,指定匹配的结束位置  
        System.out.println("sb.lastIndexOf(\"good\", 1)(2) = "  
                + sb.lastIndexOf("good", 2));  
		System.out.println("sb.lastIndexOf(\"good\", 1)(50) = "  
                + sb.lastIndexOf("good", 50)); 
    }  
	
	/* length方法获取字符串的长度 */  
	public static void LengthStr(){
		System.out.print("\nLengthStr()\n");
		StringBuffer sb = new StringBuffer("I love java!");  
        System.out.print("sb=" + sb.toString()+"\nthe length of string is "+sb.length());  	
	}
   
    /* append方法在字符串末尾添加内容 */  
    public static void AppendStr() { 
        System.out.print("\nAppendStr()\n");	
        StringBuffer sb = new StringBuffer();  
        sb.append("This is a test function for append\n");  
		sb.append("to be stronger man\n "); 
        System.out.print(sb.toString());  
    }  
  
    /* charAt方法获取字符串中某个位置的字符 */  
    public static void GetCharAtStr() {  
	    System.out.print("\nGetCharAtStr()\n");
        StringBuffer sb = new StringBuffer("I am only brave when i have to be. Being brave don't mean you go looking for trouble");  
        System.out.println(sb.charAt(sb.length() - 1));  
    }  
  
    /* append方法添加各种类型的数据到字符串的尾部 */  
    public static void AddAppendStr() {  
	    System.out.print("\nAddAppendStr()\n");
        StringBuffer sb = new StringBuffer("I love java!");  
        sb.append(15.20f);  
		sb.append(39.28f);  
		sb.append(369);  
        System.out.println(sb.toString());  
    }  
  
    /*delete方法删除字符串中的数据 */  
    public static void DeleteStr() {  
	    System.out.print("\nDeleteStr()\n");
        StringBuffer sb = new StringBuffer("Don't lie to people who trust you!");  
        sb.delete(1, 4);  
        sb.deleteCharAt(sb.length() - 1);  
        System.out.println(sb.toString());  
    }  
  
    /*insert方法向字符串中插入各种类型的数据 */  
    public static void InsertStr() {  
	    System.out.print("\nInsertStr()\n");
        StringBuffer sb = new StringBuffer("Knowledge will give you power,but character respect!");  
        sb.insert(1, 'T');  
		System.out.println(sb.toString()+"\n");  
        sb.insert(5, new char[] { 'D', 'F', 'G' });
        System.out.println(sb.toString()+"\n"); 		
        sb.insert(7, "THY");  
		System.out.println(sb.toString()+"\n"); 
        sb.insert(9, 3);  
		System.out.println(sb.toString()+"\n"); 
        sb.insert(2, 2.9f);  
		System.out.println(sb.toString()+"\n"); 
        sb.insert(7, 3.63d);
        System.out.println(sb.toString()+"\n"); 		
        sb.insert(9, 5892L); 
        System.out.println(sb.toString()+"\n"); 		
        sb.insert(10, true);  
		System.out.println(sb.toString()+"\n"); 
		sb.insert(15, false);
		System.out.println(sb.toString()+"\n"); 
    }  
  
    /*replace方法替换字符串中的某些字符 */  
    public static void ReplaceStr() {  
	    System.out.print("\nReplaceStr()\n");
        StringBuffer sb = new StringBuffer("Don't worry too much about the ambiguous future!");  
        sb.replace(5, sb.length()-1, "replace_str");  
        System.out.println(sb.toString());  
    }  
  
    /* reverse方法将字符串倒序*/  
    public static void ReverseStr() {  
	    System.out.print("\nReverseStr()\n");
        StringBuffer sb = new StringBuffer("We must accept finite disappointment,but we must never lose infinite hope!\n");  
		System.out.println(sb.toString());
        System.out.println(sb.reverse()); 
    }  
	  /*
	  substring(int start)方法返回从start下标开始以后的字符串
      substring(int start,int end) 方法返回从start到 end-1字符串
	  */
	 public static void SubStr() {  
	    System.out.print("\nSubStr()\n");
        StringBuffer sb = new StringBuffer("It doesn't matter if the guy is perfect!\n");  
		System.out.println(sb.substring(6,10)); 
		System.out.println(sb.substring(6)); 
		System.out.println(sb.toString()); 
		
    }    
	
}  



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值