JAVA语言StringBuffer类的使用

来源:互联网 发布:制作公司简介的软件 编辑:程序博客网 时间:2024/06/05 05:27

      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());     }    }  



0 0
原创粉丝点击