栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java入门-StringBuilder

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java入门-StringBuilder

一、创建StringBuilder对象
创建StringBuilder的对象,分别使用无参构造和有参构造
StringBuilder的四种构造方法:
    1.StringBuilder():
        构造一个不带任何字符的字符串生成器,其初始容量为 16 个字符

    2.StringBuilder(CharSequence seq):
        构造一个字符串生成器,它包含与指定的 CharSequence 相同的字符


    3.StringBuilder(int capacity):
        构造一个不带任何字符的字符串生成器,其初始容量由 capacity 参数指定


    4.StringBuilder(String str):
        构造一个字符串生成器,并初始化为指定的字符串内容

*要注意,一般而言,打印对象,一般输出的是地址值,但是这里我们打印stringBuilder输出的是字符串缓冲区中的内容
package com.tan.stringbuilder;

public class StringBuilderDemo {
    public static void main(String[] args) {
        
        StringBuilder stringBuilder = new StringBuilder();
        System.out.println("stringBuilder.capacity() = " + stringBuilder.capacity());//stringBuilder.capacity() = 16
        System.out.println("stringBuilder = " + stringBuilder);//stringBuilder =


        
        System.out.println("====================");
        StringBuilder stringBuilder1 = new StringBuilder();
        System.out.println("stringBuilder1.capacity() = " + stringBuilder1.capacity());//stringBuilder1.capacity() =
        System.out.println("stringBuilder1 = " + stringBuilder1);//stringBuilder1 =


        
        System.out.println("====================");
        StringBuilder stringBuilder2 = new StringBuilder(10);
        System.out.println("stringBuilder2.capacity() = " + stringBuilder2.capacity());//stringBuilder2.capacity() = 10
        System.out.println("stringBuilder2 = " + stringBuilder2);//stringBuilder2 =



        
        System.out.println("====================");
        StringBuilder stringBuilder3 = new StringBuilder("10");
        System.out.println("stringBuilder3.capacity() = " + stringBuilder3.capacity());//stringBuilder3.capacity() = 18
        System.out.println("stringBuilder3 = " + stringBuilder3);//stringBuilder3 = 10


    }
}
二、StringBuilder常用的方法
StringBuilder append():
1.形参可以传任何类型,因为在API中明确写了有StringBuilder append(Object obj)这一个方法,
而Object是超类,所以这里的形参是可以传任何类型的

2.StringBuilder append(A)实现的是拼接,将A接到原来StringBuilder对象的内容的后面

3.StringBuilder这里和String不一样,String只要有了变动,都是新建了个String对象,而StringBuilder
的append方法使用是直接在原StringBuilder对象上操作的

4.StringBuilder的append方法比String使用加法进行拼接节省很多空间
char charAt(int index) : 获取指定索引位置的字符
int length() VS int capacity()
1.length()返回的是当前已经装了几个字符
2.capacity()返回的是本StringBuilder能装几个字符
int indexOf(String str)  VS int lastIndexOf(String str)
1.indexOf(String str):返回传入的字符串在StringBuilder对象中第一次出现的索引位置
2.lastIndexOf(String str):返回传入的字符串在StringBuilder对象中最后一次出现的索引位置
StringBuilder reverse()
1.将StringBuilder对象存储的内容进行反转
3.StringBuilder这里和String不一样,String只要有了变动,都是新建了个String对象,而StringBuilder
的reverse方法使用是直接在原StringBuilder对象上操作的
String substring(int start)  VS  String substring(int start, int end)
1.String substring(int start)从start开始截取,直到最后一个元素--->[start,last element]
2.String substring(int start, int end)从start开始截取,直到end--->[start,end)
String toString():将StringBuilder对象转换成字符串对象

代码实现:

package com.tan.stringbuilder;

public class StringBuilderDemo {
    public static void main(String[] args) {
        
        StringBuilder stringBuilder = new StringBuilder("Hello");
        System.out.println("stringBuilder = " + stringBuilder);//stringBuilder = Hello
        stringBuilder.append("World");
        System.out.println("stringBuilder = " + stringBuilder);//stringBuilder = HelloWorld
        System.out.println("=================");

        
        System.out.println("stringBuilder.charAt(2) = " + stringBuilder.charAt(2));//stringBuilder.charAt(2) = l
        System.out.println("=================");

        
        System.out.println("stringBuilder.length() = " + stringBuilder.length());//stringBuilder.length() = 10
        System.out.println("stringBuilder.capacity() = " + stringBuilder.capacity());//stringBuilder.capacity() = 21
        System.out.println("=================");

        
        System.out.println("stringBuilder.indexOf("l") = " + stringBuilder.indexOf("l"));//stringBuilder.indexOf("l") = 2
        System.out.println("stringBuilder.lastIndexOf("l") = " + stringBuilder.lastIndexOf("l"));//stringBuilder.lastIndexOf("l") = 8
        System.out.println("=================");

        
        System.out.println("stringBuilder = " + stringBuilder);//stringBuilder = HelloWorld
        System.out.println("stringBuilder.reverse() = " + stringBuilder.reverse());//stringBuilder.reverse() = dlroWolleH
        System.out.println("=================");


        
        System.out.println("stringBuilder.reverse() = " + stringBuilder.reverse());//stringBuilder = HelloWorld
        System.out.println("stringBuilder.substring(5) = " + stringBuilder.substring(5));//stringBuilder.substring(5) = World
        System.out.println("stringBuilder.substring(2,5) = " + stringBuilder.substring(2, 5));//stringBuilder.substring(2,5) = llo
        System.out.println("=================");

        
        System.out.println("stringBuilder.toString() = " + stringBuilder.toString());//stringBuilder.toString() = HelloWorld
        System.out.println("=================");

    }
}
三、StringBuilder的练习
问题描述:
按照指定格式打印字符串,格式样例:[a1,a2,a3]

代码实现:

package com.tan.stringbuilder;
import java.util.Arrays;


public class StringBuilderDemo {
    public static void main(String[] args) {
        int[] arr = {1,3,5,7,9};
//        基于面向对象思想的一种方法:Arrays.toString(arr)
        System.out.println("Arrays.toString(arr) = " + Arrays.toString(arr));

//        基于面向过程思想的三种方法:1.手动实现 2.String的加法拼接 3.StringBuilder的append()
        
//        1.手动实现
        System.out.print("[");
        for (int i = 0; i < arr.length; i++) {
            if (i == arr.length - 1){
                System.out.println(arr[i] + "]");
            }else{
                System.out.print(arr[i] + ", ");
            }
        }
        
//        2.String的加法拼接
        String strPrint = "[";
        for (int i = 0; i < arr.length; i++) {
            if(i == arr.length - 1){
                strPrint += (arr[i] + "]");
            }else {
                strPrint += (arr[i] + ", ");
            }
        }
        System.out.println("strPrint = " + strPrint);

//        3.StringBuilder的append()
        StringBuilder stringBuilder = new StringBuilder("[");
        for (int i = 0; i < arr.length; i++) {
            if(i == arr.length - 1){
                stringBuilder.append(arr[i] + "]");
            }else {
                stringBuilder.append(arr[i] + ", ");
            }
        }
        System.out.println("stringBuilder = " + stringBuilder);
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/711091.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号