| 老师上课时已经详细地讲解了String类的各种概念,其中有一条特性是String的内容一旦声明则不可改变,如果改变,则改变的肯定是String的引用地址,那么如果现在的情况是一个字符串要被经常改变,此时就必须使用StringBuffer类。从老师的讲课中大家已经清楚地知道,在String类中可以通过“+”进行字符串的连接,但在StringBuffer中却只能使用append()方法进行字符串的连接。下面我就个人理解给大家展示一下StringBuffer类中的一些方法。 
 1、字符串的连接操作
 
 在程序中使用append()方法可以进行字符串的连接,而且此方法返回了一个StringBuffer类的实例,这样就可以采用代码链的形式一直调用append()方法,代码如下所示:
 
 通过append()方法连接各种类型的数据
 
 public class StringBufferDemo1{
 
 public static void main(String[] args){
 
 StringBuffer  buf  =  new  StringBuffer();                   // 声明StringBuffer对象
 
 buf.append("Hello");                                                // 向StringBuffer中添加内容
 
 buf.append("World").append("!!!");                         // 可以连续调用append()方法
 
 buf.append("\n");                                                     // 添加一个转义字符表示换行
 
 buf.append("数字=").append(1).append("\n");         // 可以添加数字
 
 buf.append("字符=").append('c').append("\n");        // 可以添加字符
 
 System.out.println(buf);                                             //内容输出
 
 }
 
 }
 
 在这里我就不说运行结果了,有兴趣可以自己运行一下,看看结果是什么。除了上面外StringBuffer的内容是可以修改的、在这就不详说了。
 
 2、在任意位置处为StringBuffer添加内容
 
 可以直接使用insert()方法在指定的位置为StringBuffer添加内容,代码如下:
 
 public class StringBufferDemo2{
 
 public static void main(String[] args){
 
 StringBuffer buf = new StringBuffer();               // 声明StringBuffer对象
 
 buf.append("World!!");                                      // 向StringBuffer中添加内容
 
 buf.insert( 0 , "Hello");                                       // 在所有内容之前添加
 
 System.out.println(buf);                                     //将修改后的内容输出
 
 buf.insert(buf.length() , “潘天功");                      // 在最后添加
 
 System.out.println(buf);                                      //将内容输出
 
 }
 
 }
 
 3、字符串反转操作
 
 在StringBuffer中专门提供了字符串反转的操作方法,所谓的字符串反转就是指将一个是“Hello”的字符串转为“olleH”.代码如下:
 
 public class StringBufferDemo3{
 
 public static void main(String[] args){
 
 StringBuffer buf = new StringBuffer();                              // 声明StringBuffer对象
 
 buf.append("World!!");                                                    // 向StringBuffer中添加内容
 
 buf.insert( 0 , "Hello");                                                     // 在所有内容之前添加
 
 String  str  =   buf.reverse().toString();                            // 将内容反转后变为String类型
 
 System.out.println(str);                                                    // 将内容输出
 
 }
 
 }
 
 以上的程序通过append()和insert()方法向Stringbuffer加入数据后,使用reverse()方法将所有的内容以逆序的方式输出。在字符串的操作中,反转是一种较为常见的操作。
 
 4、替换指定范围的内容
 
 在Stringbuffer类中也存在replace()方法,使用此方法可以对指定的内容进行替换,代码体现如下:
 
 public class StringBufferDemo4{
 
 public static void main(String[] args){
 
 StringBuffer buf = new StringBuffer();                          // 声明StringBuffer对象
 
 buf.append("Hello").append("World!!");                       // 向StringBuffer中添加内容
 
 buf.replace(6,11,"潘天功");                                           // 将World替换为潘天功
 
 System.out.println(buf);                                                 //删除替换后的内容
 
 }
 
 }
 
 注意:在String中如果要进行替换,则使用的是replaceAll()的方法,而在Stringbuffer中使用的是replace()方法。
 
 5、字符串截取
 
 通过substring()方法可以直接从Stringbuffer的指定范围中截取内容,具体代码如下:
 
 public class StringBufferDemo5{
 
 public static void main(String[] args){
 
 StringBuffer buf = new StringBuffer();                     // 声明StringBuffer对象
 
 buf.append("Hello").append("World!!");                 // 向StringBuffer中添加内容
 
 buf.replace(6,11,"潘天功");                                    // 将World替换为潘天功
 
 String  str  =  buf.substring(6 , 11);                        // 指定截取范围,并把内容转化为String类型
 
 System.out.println(str);                                           //将截取后的结果输出
 
 }
 
 }
 
 6、删除指定范围的字符串
 
 因为StringBuffer本身的内容是可更改的、所以也可以通过delete()方法删除指定范围的内容
 
 public class StringBufferDemo6{
 
 public static void main(String[] args){
 
 StringBuffer buf = new StringBuffer();                             // 声明StringBuffer对象
 
 buf.append("Hello").append("World!!");                          // 向StringBuffer中添加内容
 
 buf.replace(6,11,"潘天功");                                             // 将World替换为潘天功
 
 String str = buf.delete(6 , 11).toString();                         // 删除指定范围的字符串
 
 System.out.println(str);                                                    //将删除之后的结果输出
 
 }
 
 }
 
 7、查找指定的内容是否存在
 
 通过indexOf()方法可以查找指定内容,如果查找到了,则返回内容的位置,如果没有查找到则返回-1
 
 public class StringBufferDemo7{
 
 public static void main(String[] args){
 
 StringBuffer  buf  =   new  StringBuffer();            // 声明StringBuffer对象
 
 buf.append("Hello").append("World!!");              // 向StringBuffer中添加内容
 
 if(buf.indexOf("Hello").append = = -1){
 
 System.out.println("没有查找到指定的内容");
 
 }else{
 
 System.out.println("可以查找到指定的内容");
 
 }
 
 }
 
 }
 
 
 
 总结:当时老师讲课时就说这个类很重要、由于当时课程比较紧、所以没有很好地理解这个类。现在重新整理下,感觉轻松多了。
 
 |