【JAVA】StringBulider&String

StringBulider&String

StringBulider 是一个可变字符串类,我们可以把它看成是一个容器,这里的可变指的是StringBulider对象中的内容是可变的。
String :内容是不可变的
StringBulider: 内容是可变的

String 实现字符串反转:

import java.util.Scanner;

public class StringDemo {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入一个字符串:");
        String s = sc.nextLine();

        inversion(s);
    }

    public static void inversion(String st){
        String str = "";
        for (int i = st.length()-1; i >= 0; i--){
            str += st.charAt(i);
        }
        System.out.println(str);
    }
}

实现效果:

请输入一个字符串:nihao
oahin

StringBulider 实现字符串添加和反转:

public class StringBuilderDemo {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder();

        StringBuilder sb1 = sb.append("hello");

        System.out.println("sb:" + sb);
        System.out.println("sb1:" + sb1);
        System.out.println(sb == sb1);
        
        //链式添加编程
        sb.append("yuaner").append("nihao").append(00);
        System.out.println("链式添加:" + sb);

        //反转序列
        sb.reverse();
        System.out.println("反转序列" + sb);
    }
}

显示的结果:

sb:hello
sb1:hello
true
链式添加:helloyuanernihao0
反转序列0oahinrenauyolleh

综上可以看出使用StringBuilder时改变的是常量池中同一个地址中的字符串;而使用String是每次都会在堆内存中申请一个新的地址空间用于存储字符串,因此都有自己专属的一个地址。

StringBulider 和 String相互转换

为什么相互转换: 因为前者由append和reverse两个方便使用的方法,我们可以把string转换到stringbuilder中使用这两个方法之后再转换回string中方便使用,就不需要使用string时再构造方法了。
SB转S: toString()
S转SB: StringBuilder(String s)

public class StringBuilderDemo1 {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder();
        sb.append("hello");

        //toString()方法
        String s = sb.toString();
        System.out.println("sb->s:" + s);

        String str = "world";
        //S转为SB
        StringBuilder stb = new StringBuilder(str);
        System.out.println("s->sb:" + stb);
    }
}

显示结果:

sb->s:hello
s->sb:world

猜你喜欢

转载自blog.csdn.net/joker_Ling/article/details/107726664
今日推荐