目录

  • 1 初识Java
    • 1.1 Java是什么?
    • 1.2 如何搭建Java开发环境?
    • 1.3 如何编写java应用程序?
    • 1.4 代码如何注释?
  • 2 Java语法基础
    • 2.1 章节导引-BMI体重计算器
    • 2.2 Java变量与数据类型
    • 2.3 Java运算符
    • 2.4 数据类型转换
    • 2.5 控制台输入输出
    • 2.6 Java数学
  • 3 选择结构
    • 3.1 章节导引-BMI健康报告
    • 3.2 简单选择结构
    • 3.3 复杂选择结构
    • 3.4 选择结构嵌套
  • 4 循环结构
    • 4.1 章节导引-猜数字游戏
    • 4.2 while循环
    • 4.3 do...while循环
    • 4.4 for循环
    • 4.5 循环语句跳转
    • 4.6 多重循环
    • 4.7 猜数字最终版
  • 5 数组
    • 5.1 章节导引-客户积分奖励
    • 5.2 一维数组
    • 5.3 最大值与排序
    • 5.4 foreach访问数组
    • 5.5 二维数组
    • 5.6 循环嵌套
    • 5.7 客户积分奖励
  • 6 字符串
    • 6.1 章节导引-登录注册
    • 6.2 String类
    • 6.3 StringBuffer类
  • 7 面向对象入门
    • 7.1 章节导引-客户积分奖励升级
    • 7.2 类和对象基础
    • 7.3 类的无参方法
    • 7.4 类的有参方法
StringBuffer类

字符串StringBuffer类

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

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

在StringBuffer类中存在很多和String类一样的方法,这些方法在功能上和String类中的功能是完全一样的。

一、StringBuffer对象的初始化

StringBuffer对象的初始化不像String类的初始化一样,Java提供的有特殊的语法,而通常情况下一般使用构造方法进行初始化。

例如:

         StringBuffer s = new StringBuffer();

这样初始化出的StringBuffer对象是一个空的对象。

如果需要创建带有内容的StringBuffer对象,则可以使用:

         StringBuffer s = new StringBuffer(“abc”);

这样初始化出的StringBuffer对象的内容就是字符串”abc”。

注意:

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

         StringBuffer s = “abc”;               //赋值类型不匹配

         StringBuffer s = (StringBuffer)”abc”;    //不存在继承关系,无法进行强转

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

         String s = “abc”;

         StringBuffer sb1 = new StringBuffer(“123”);

         StringBuffer sb2 = new StringBuffer(s);   //String转换为StringBuffer

         String s1 = sb1.toString();              //StringBuffer转换为String

 二、StringBuffer的常用方法

StringBuffer类中的方法主要偏重于对于字符串的变化,例如追加、插入和删除等,这个也是StringBuffer和String类的主要区别。

1)append方法

        public StringBuffer append(boolean b)

该方法的作用是追加内容到当前StringBuffer对象的末尾,类似于字符串的连接。调用该方法以后,StringBuffer对象的内容也发生改变,例如:

        StringBuffer sb = new StringBuffer(“abc”);

         sb.append(true);

         则对象sb的值将变成”abctrue”。

举例:    

public class sbAppend {

    public static void main(String[ ] args) {

        StringBuffer sb = new StringBuffer("青春无悔"); 

        int num=110;

        StringBuffer sb1 = sb.append("我心永恒");  

        System.out.println(sb1);

        StringBuffer sb2 = sb1.append('啊');       

        System.out.println(sb2);

        StringBuffer sb3 = sb2.append(num);    

        System.out.println(sb3);

    }

}

输出:


2)deleteCharAt方法

         public StringBuffer deleteCharAt(int index)

该方法的作用是删除指定位置的字符,然后将剩余的内容形成新的字符串。例如:

         StringBuffer sb = new StringBuffer(“Test”);

         sb. deleteCharAt(1);

该代码的作用删除字符串对象sb中索引值为1的字符,也就是删除第二个字符,剩余的内容组成一个新的字符串。所以对象sb的值变为”Tst”

还存在一个功能类似的delete方法:

         public StringBuffer delete(int start,int end)

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

         StringBuffer sb = new StringBuffer(“TestString”);

         sb. delete (1,4);

该代码的作用是删除索引值1(包括)到索引值4(不包括)之间的所有字符,剩余的字符形成新的字符串。则对象sb的值是”TString”。

   3)insert方法

          public StringBuffer insert(int offset, boolean b)

 该方法的作用是在StringBuffer对象中插入内容,然后形成新的字符串。例如:

          StringBuffer sb = new StringBuffer(“TestString”);

          sb.insert(4,false);

该示例代码的作用是在对象sb的索引值4的位置插入false值,形成新的字符串,则执行以后对象sb的值是”TestfalseString”。

举例:将一个数字字符串转换成逗号分隔的数字串,即从右边开始每三个数字用逗号分隔 


参考代码:

public class TestInsert {

    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);

        System.out.print("请输入一串数字: ");

        String nums = input.next();

        StringBuffer str=new StringBuffer(nums);

        for(int i=str.length()-3;i>0;i=i-3){

            str.insert(i,',');

        }

        System.out.print(str);

    }

}

4)reverse方法

         public StringBuffer reverse()

该方法的作用是将StringBuffer对象中的内容反转,然后形成新的字符串。例如:

         StringBuffer sb = new StringBuffer(“abc”);

         sb.reverse();

经过反转以后,对象sb中的内容将变为”cba”。

 5)setCharAt方法

           public void setCharAt(int index, char ch)

       该方法的作用是修改对象中索引值为index位置的字符为新的字符ch。例如:

          StringBuffer sb = new StringBuffer(“abc”);

           sb.setCharAt(1,’D’);

           则对象sb的值将变成”aDc”。

    6) trimToSize方法

             public void trimToSize()

该方法的作用是将StringBuffer对象的中存储空间缩小到和字符串长度一样的长度,减少空间的浪费。