zoukankan      html  css  js  c++  java
  • review19

    StringBuffer类

    String类创建的字符串对象是不可修改的,也就是说,String字符串不能修改、删除或替换字符串中的饿某个字符,即String对象一旦创建,那么实体是不可以再发生变化的。

    而StringBuffer类创建可修改的字符串序列,也就是说,该类对象的实体的内存空间可以自动地改变大小。

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

    StringBuffer对象调用append方法可以追加字符序列,例如:

    public class Test08 {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            StringBuffer sb = new StringBuffer("我喜欢");
            System.out.println(sb);
            sb.append("打篮球");
            System.out.println(sb);
        }
    
    }

    运行结果如下所示:

    StringBuffer类有三个构造方法,

    StringBuffer()

    StringBuffer(int size)

    StringBuffer(String s)

    第一个无参数的构造方法创建一个StringBuffer对象,分配给该对象的实体的初始容量是16个字符

    第二个构造方法创建的对象分配给该实体的容量是size个字符

    第三个构造方法创建的对象分配给该实体的容量是s的长度加上16个字符

    通过capacity()方法我们可以知道当前实体的实际容量。

    append方法

    StringBuffer append(String s):将一个字符串对象追加到当前StringBuffer对象中,并返回当前StringBuffer对象的引用。

    StringBuffer append(int n):将一个int型数据转化为字符串对象再追加到当前StringBuffer对象中,并返回当前StringBuffer对象的引用。

    StringBuffer append(Object o):将一个Object对象的字符串表示追加到当前StringBuffer对象中,并返回当前StringBuffer对象的引用。

    public char charAt(int n)得到参数n指定的位置上的单个字符

    public void setCharAt(int n, char ch)  将StringBuffer对象n位置上的字符用ch替代

    StringBuffer insert(int index, String str)  StringBuffer对象使用insert方法将参数str指定的字符串插入到参数index指定的位置。

    public StringBuffer reverse()  StringBuffer对象使用reverse()方法将对象实体中的字符翻转,并返回当前对象的引用。

    StringBuffer delete(int startIndex, int endIndex)  从当前StringBuffer对象实体中的字符串中删除一个子字符串,并返回当前对象的引用。

    StringBuffer replace(int startIndex, int endIndex, String str)  将当前StringBuffer对象实体中的字符串的一个子字符串用参数str指定的字符串替换。

    从startIndex到endIndex-1的字符串被替换。

    上述方法使用情况如下所示:

    public class Test09 {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            StringBuffer sb = new StringBuffer();
            sb.append("大家好");
            //str.append("大家好");
            System.out.println("sb:" + sb);
            System.out.println("sb的容量:" + sb.capacity());
            StringBuffer sb1 = new StringBuffer("大家好");
            System.out.println("sb1:" + sb1);
            System.out.println("sb1的容量:" + sb1.capacity());
            sb.setCharAt(0, 'w');
            sb.setCharAt(1, 'e');
            System.out.println(sb);
            sb.insert(2, " are all");
            System.out.println(sb);
            int index = sb.indexOf("好");
            sb.replace(index, sb.length(), "right");
            System.out.println(sb);
        }
    
    }

    运行结果如下所示:

  • 相关阅读:
    Day01-基础加强笔记
    CS Academy Round#2 E.Matrix Coloring
    AtCoder ABC198 F
    NERC2021 B. Button Lock
    AtCoder ARC115 E
    NOI Online 2021 Round 1 提高组 愤怒的小 N
    洛谷 P6918 [ICPC2016 WF]Branch Assignment
    AtCoder ARC076 F
    Atcoder ABC155 F
    POJ 1966 Cable TV Network
  • 原文地址:https://www.cnblogs.com/liaoxiaolao/p/9428951.html
Copyright © 2011-2022 走看看