2-Java常用API第一部分-StringBuilder类

1. StringBuilder

  1. StringBuilder 概述

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

  1. String和StringBulider的区别

​ ①:String:内容是不可变的

​ ②:StringBuilder:内容是可变的。

2. StringBuilder 构造方法

方法名 说明
public StringBuilder() 创建一个空白可变字符串对象,不含有任何内容
public StringBuilder(String str) 根据字符串的内容,来创建可变字符串对象
public class StringBuilderDemo {
    public static void main(String[] args) {
        //构造方法一
       StringBuilder s1 = new StringBuilder();
        System.out.println("s1:"+s1);
        System.out.println("s1.length():"+s1.length());
        //构造方法二
        StringBuilder s2 = new StringBuilder("hello");
        System.out.println("s2:"+s2);
        System.out.println("s2.length():"+s2.length());
    }

}

3. StringBuilder的添加和反转方法

方法名 说明
public StringBuilder append(任意类型) 添加数据,并返回对象本身
public StringBuilder reverse() 返回相反的字符序列
public class StringBuilderDemo {
    public static void main(String[] args) {
      StringBuilder sb = new StringBuilder();

//      public StringBuilder append(任意类型)添加数据,并返回对象本身
      /*StringBuilder sb2 = sb.append("hello");
        System.out.println(sb);
        System.out.println(sb2);
        System.out.println(sb==sb2);
  等价于:
        sb.append("hi");
        System.out.println(sb);*/

        /*sb.append("hello");
        sb.append(1);
        sb.append("hi");
        System.out.println(sb);
        //结果:hello1hi----等价于:
        sb.append("hello").append(1).append("hi");
        System.out.println(sb);*/

        //public StringBuilder reverse()返回相反的字符序列
        sb.append("hello").append(1).append("hi");
        System.out.println(sb);
        sb.reverse();
        System.out.println(sb);
    }

}

4. SringBuilder和String相互转换

  1. StringBuilder转换为String

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

  1. String转换为StringBuilder

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

public class StringBuilderDemo {
    public static void main(String[] args) {

      /*-------StringBuilder转换为String-------
        StringBuilder sb = new StringBuilder();
        sb.append("hello");
//      String s1 =sb;//这是错误的
        String s1 = sb.toString();
        System.out.println(s1);*/

        /*----------String转换为StringBuilder----
        String s2 ="hello";
        StringBuilder s3 = new StringBuilder(s2);
        System.out.println(s3);*/
    }
}

1.拼接字符串

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

public class StringBuilderDemo {
    public static void main(String[] args) {
        int []arr = {1,2,3};
        System.out.println(splicing(arr));
    }
    public static String splicing(int []arr){
        //利用StringBuilder类添加数据的便利性进行拼接
        StringBuilder s = new StringBuilder();

        //设置s1来接收转换成String的StringBuilder类的数据
        String s1 ="";
        //拼接开始
        s.append("{");
        for (int i = 0;i<arr.length;i++){
            if(i==arr.length-1){
                s.append(arr[i]);
            }else {
                s.append(arr[i]).append(",");
            }
        }
        s.append("}");
        s1 = s.toString();
        return s1;
    }
}

2. 字符串反转

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

import java.util.Scanner;

public class StringBuilderDemo {
    public static void main(String[] args) {
        //键盘输入字符串
        Scanner sc = new Scanner(System.in);
        String line = sc.nextLine();
        //调用方法
        String l =rollback(line);
        //输出
        System.out.println("l:"+l);
    }
    public static String rollback(String L){
        /*//把String转换为StringBuilder
        StringBuilder s = new StringBuilder(L);
        //利用StringBuilder的reverse来反转字符串
        s.reverse();
        //把StringBuilder转换为String
        String s1 = s.toString();
        //返回数据
        return s1;*/
//等价于:
        return new StringBuilder(L).reverse().toString();
    }
}

你可能感兴趣的:(Java基础和进阶,java,字符串)