stringbuilder 订阅
StringBuilder是一个可变的字符序列。此类提供一个与 StringBuffer 兼容的 API,但不保证同步。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。 展开全文
StringBuilder是一个可变的字符序列。此类提供一个与 StringBuffer 兼容的 API,但不保证同步。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。
信息
所属学科
IT
外文名
StringBuilder
所属科目
C#
所属领域
程序编写
来    源
jdk1.5及以后的版本
中文名
一个可变的字符序列
StringBuilder简介
如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer 要快。 在 StringBuilder 上的主要操作是 append 和 insert 方法。每个方法都能有效地将给定的数据转换成字符串,然后将该字符串的字符添加或插入到字符串生成器中。append 方法始终将这些字符添加到生成器的末端;而 insert 方法则在指定的点添加字符。 例如,如果 z 引用一个当前内容为“start”的字符串生成器对象,则该方法调用 z.append("le") 将使字符串生成器包含“startle”,而 z.insert(4, "le") 将更改字符串生成器,使之包含“starlet”。 通常,如果 n引用 StringBuilder 的实例(StringBuilder n = new StringBuilder();),则 n.append(x) 和 n.insert(n.length(), x) 具有相同的效果。 每个字符串生成器都有一定的容量。只要字符串生成器所包含的字符序列的长度没有超出此容量,就无需分配新的内部缓冲区。如果内部缓冲区溢出,则此容量自动增大。 将StringBuilder的实例用于多个线程是不安全的。如果需要这样的同步,则建议使用StringBuffer。 [1]  StringBuilder类可以用于在无需创建一个新的字符串对象情况下修改字符串。StringBuilder不是线程安全的,而StringBuffer是线程安全的。但StringBuilder在单线程中的性能比StringBuffer高。
收起全文
精华内容
参与话题
问答
  • StringBuilder

    千次阅读 多人点赞 2019-07-02 11:14:21
    1.StringBuilder StringBulider是一个可变的字符串类,可以把它看作是一个容器。 String和StringBuilder的区别: String中的内容是不可变的 StringBuilder中的内容是可变的 String和StringBuilder的相互转换...

    1.StringBuilder

    StringBulider是一个可变的字符串类,可以把它看作是一个容器。

    String和StringBuilder的区别:

    • String中的内容是不可变的
    • StringBuilder中的内容是可变的

    String和StringBuilder的相互转换:

    •  通过toString()方法,把StringBuilder转换成String
    • 通过StringBuilder的构造方法,把String转换成StringBuilder

     

    public class StringBilder01 {
        public static void main(String[] args) {
            //定义StringBuilder对象
            StringBuilder sb1 = new StringBuilder();
            //添加数据,链式
            sb1.append("Hello").append(100);
            /*
                StringBuider转String:
                String s1 = sb1.toString();
             */
            String s1 = "";
            System.out.println("s1:" + s1);
            s1 = sb1.toString();
            System.out.println("s1:" + s1);
    
            //定义String对象,直接赋值
            String s2 = "Hello";
            /*
                String转换成StringBuilder:
                StringBuilder sb2 = new StringBuilder(s2);
             */
            StringBuilder sb2 = new StringBuilder(s2);
            System.out.println("s2:" + s2);
        }
    }

     案列1:拼接字符串:定义一个方法,把int数组中的元素按照指定的格式拼接成一个字符串返回, * 调用该方法,并在控制台输出结果。例如:int[] arr={1,2,3},拼接成字符串[1,2,3]

    /**
     *   拼接字符串:定义一个方法,把int数组中的元素按照指定的格式拼接成一个字符串返回,
     *        调用该方法,并在控制台输出结果。例如:int[] arr={1,2,3},拼接成字符串[1,2,3]
     */
    public class StringBilder02 {
        public static void main(String[] args) {
            //定义一个数组,并且静态初始化
            int[] arr = {1,2,3};
            //调用方法
            String s = arrayToString(arr);
            //输出结果
            System.out.println("s:" + s);
        }
        /*
            定义一个方法:拼接字符串
                    两个明确:
                        返回类型:String
                            参数:int[] arr
         */
        public static String arrayToString(int[] arr){
            //定义一个StringBuilder对象,用来接收拼接的字符串
            StringBuilder sb = new StringBuilder();
            //添加字符串头
            sb.append("[");
            //遍历数组
            for (int i = 0; i < arr.length; i++){
                //判断,是否为最后一个元素
                if (i == arr.length - 1){
                    sb.append(arr[i]);
                }else{
                    sb.append(arr[i]).append(", ");
                }
            }
            //添加字符串尾
            sb.append("]");
            //转换成String对象
            String s = sb.toString();
            //返回s
            return s;
        }
    }

    案例2: 字符串反转:定义一个方法,实现字符串反转。键盘录入一个字符串,调用该方法后,在控制台输出。例如输入abc,输出cba。

    import java.util.Scanner;
    
    /**
     *  字符串反转:定义一个方法,实现字符串反转。键盘录入一个字符串,调用该方法后,在控制台输出。
     *       例如输入abc,输出cba。
     */
    public class StringBuilder03 {
        public static void main(String[] args) {
            //键盘录入一个字符串
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入一个字符串:");
            String s = sc.nextLine();
            String s1  = reverseString(s);
            System.out.println("s1:" + s1);
        }
        /*
            定义一个方法:实现字符串反转
                两个明确:
                    返回类型:String
                        参数:String rs
         */
        public static String reverseString(String s){
            /*
            //定义一个StringBuilder字符串对象,用来接收反转,并且将String对象转换成StringBuilder对象
            StringBuilder sb = new StringBuilder(s);
            //调用reverse()方法进行反转
            sb.reverse();
            //将StringBuilder对象转换成String对象
            String s1 = sb.toString();
            //返回s1
            return s1;
            */
            return new StringBuilder(s).reverse().toString();
        }
    }

     说明:

    1)注意String与StringBulider之间的转换。

    2)注意使用StringBuilder的方法:

    • append():添加数据
    • reverse():反转数据
    展开全文
  • stringbuilder

    2020-02-29 21:16:44
    StringBuilder 类是可变的。它是 String 的对等类,它可以增加和编写字符的可变序列,并且能够将字符插入到字符串中间或附加到字符串末尾(当然是不用创建其他对象的) StringBuilder 的构造方法: 构造方法 说明 ...

    StringBuilder 类是可变的。它是 String 的对等类,它可以增加和编写字符的可变序列,并且能够将字符插入到字符串中间或附加到字符串末尾(当然是不用创建其他对象的)

    StringBuilder 的构造方法:

    构造方法 说明
    StringBuilder() 构造一个其中不带字符的 StringBuilder,其初始容量为 16 个字符
    StringBuilder(CharSequence seq) 构造一个 StringBuilder,它包含与指定的 CharSequence 相同的字符
    StringBuilder(int capacity) 构造一个具有指定初始容量的 StringBuilder
    StringBuilder(String str) 并将其内容初始化为指定的字符串内容
    StringBuilder 类的常用方法:

    方法 返回值 功能描述
    insert(int offsetm,Object obj) StringBuilder 在 offsetm 的位置插入字符串 obj
    append(Object obj) StringBuilder 在字符串末尾追加字符串 obj
    length() int 确定 StringBuilder 对象的长度
    setCharAt(int index,char ch) void 使用 ch 指定的新值设置 index 指定的位置上的字符
    toString() String 转换为字符串形式
    reverse() StringBuilder 反转字符串
    delete(int start, int end) StringBuilder 删除调用对象中从 start 位置开始直到 end 指定的索引(end-1)位置的字符序列
    replace(int start, int end, String str) StringBuilder 使用一组字符替换另一组字符。将用替换字符串从 start 指定的位置开始替换,直到 end 指定的位置结束
    上面的方法中我们选择几个,来写写代码吧:

    在/home/project/目录下新建StringBuilderTest.java

    public class StringBuilderTest {

    public static void main(String[] args){
        //定义和初始化一个StringBuilder类的字串s
        StringBuilder s = new StringBuilder("I");
        //在s后面添加字串" java"
        s.append(" java");
        //在s[1]的位置插入字串
        s.insert(1, " love");
        String t = s.toString(); //转为字符串
        System.out.println(t);
    }
    

    }

    展开全文

空空如也

1 2 3 4 5 ... 20
收藏数 32,122
精华内容 12,848
关键字:

stringbuilder