JAVA入门之StringBuilder 笔记(21)

导读:本篇文章讲解 JAVA入门之StringBuilder 笔记(21),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

引言

在对字符串的操作,例如字符串的拼接

package STRING;

public class StringDemo4 {
    public static void main(String[] args) {
        String s = "hello";
        s += "world";
        System.out.println(s);
    }
}

在这里插入图片描述

如果对字符串进行操作拼接,每次拼接,都会构建一个新的String对象,既耗时,又浪费内存卡空间,而这种操作还不可避免。那么有没有一种比较好的方式可以解决这个问题呢?答案是肯定的,我们可以通过Java提供的 StringBuilder类来解决这个问题

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

String 和 StringBuilder 的区别

  1. String:内容不可变
  2. StringBuilder:内容是可变的

StringBuilder构造方法

方法名 说明
pulic StringBuilder( ) 创建一个空白可变字符串对象,不含有任何内容
public StringBuilder( String str ) 根据字符串的内容,来创建可变字符串对象

StringBuilder的添加和反转方法

方法名 说明
public StringBuilder append(任何类型) 添加数据,返回对象本身
public StringBuilder reverse() 返回相反的字符序列
package STRING;

public class StringDemo6 {
    public static void main(String[] args) {
        //创建对象
        StringBuilder sb = new StringBuilder();

        // public StringBuilder append(任何类型)  添加数据,返回对象本身
        StringBuilder sb2 = sb.append("hello");

        System.out.println("sb:" + sb);
        System.out.println("sb2" + sb2);
        
        //判断地址是否相同
        System.out.println(sb == sb2);
    }
}

在这里插入图片描述

创建一个对象sb,并且利用是append方法给sb添加字符串数据“hello”,该方法返回sb对象本身,这时候把已经赋值了的sb的数据赋值给了sb2,啥也输出的结果是和sb一样,并且sb和sb2所指的地址也一样

如何实现字符串的拼接呢?

package STRING;

public class StringDemo6 {
    public static void main(String[] args) {
       // 创建对象
        StringBuilder sb = new StringBuilder();
        
        sb.append("hello");
        sb.append("java");

        //链式编程
        sb.append("  hello").append("world");

        //输出
        System.out.println(sb);
    }
}

在这里插入图片描述

上面利用append方法进行拼接,因为安排append方法返回的是对象本身,那么就可以对该对象本身继续添加数据,也就可以写成链式编程的写法了!!

要想实现sb字符串的反转,我们也可以使用reverse()方法来实现

package STRING;

public class StringDemo6 {
    public static void main(String[] args) {
       // 创建对象
        StringBuilder sb = new StringBuilder();
        
        sb.append("hello");
        sb.append("java");

        //链式变成
        sb.append("  hello").append("world");

        //输出
        System.out.println(sb);

        sb.reverse();
        System.out.println(sb);
    }
}

在这里插入图片描述

String和StringBuilder的相互转化

  1. StringBuilder转化为String

public String toString():通过toString()就可以实现把StringBuilder转换为String

  1. String 转化为StringBuilder

public StringBuilder(String s):通过构造方法就可以实现把String转化为StringBuilder

package STRING;

import java.util.Scanner;

public class StringDemo5 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入字符串:");
        String s = sc.next();

        //String转换为StringBuilder
        StringBuilder sb = new StringBuilder(s);

        //字符串反转
        sb.reverse();

        //StringBuilder转化为String
        s = sb.toString();
        
        System.out.println("反转后:" + s);
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/95051.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!