从屌丝到架构师的飞越(API篇)-StringBuilder类

一、介绍

StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。

由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。

二、知识点介绍

1、StringBuilder概述

2、StringBuilder和String的区别

3、构造方法

4、方法

5、练习

三、上课对应视频的说明文档

1、StringBuilder概述

我们如果对字符串进行拼接操作,每次拼接,都会构建一个新的String对象,既耗时,又浪费空间。而StringBuilder就可以解决这个问题。

2、StringBuilder和String的区别?

String的内容是固定的。

StringBuilder的内容是可变的。

3、构造方法

public StringBuilder()

和构造方法相关的方法

public int capacity():返回当前容量,理论值

public int length():返回长度(字符数),实际值

public class Demo01StringBuilder {

public static void main(String[] args) {

//创建对象

StringBuilder builder = new StringBuilder();

System.out.println("builder:"+builder);

System.out.println("builder.capacity():"+builder.capacity());

System.out.println("builder.length():"+builder.length());

}

}

4、方法

添加功能

public StringBuilder append(任意类型):添加数据,并返回自身对象

反转功能

public StringBuilder reverse()

public class Demo02StringBuilder {

public static void main(String[] args) {

//创建对象

StringBuilder builder = new StringBuilder();

//public StringBuilder append(任意类型)

//StringBuilder builder2 = builder.append("hello");

/*

System.out.println("builder:"+builder);

System.out.println("builder2:"+builder2);

System.out.println(builder == builder2); //true

*/

/*

builder.append("hello");

builder.append("world");

builder.append(true);

builder.append(100);

*/

//链式编程

builder.append("hello").append("world").append(true).append(100);

System.out.println("builder:"+builder);

//public StringBuilder reverse()

builder.reverse();

System.out.println("builder:"+builder);

}

}

与String的相互转换

StringBuilder -- String

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

String -- StringBuilder

StringBuilder(String str):通过构造方法就可以实现把String转成StringBuilder

public class Demo03StringBuilderTest {

public static void main(String[] args) {

//StringBuilder -- String

/*

StringBuilder builder = new StringBuilder();

builder.append("hello").append("world");

String s = builder.toString();

System.out.println(s);

*/

//String -- StringBuilder

String s = "helloworld";

StringBuilder builder = new StringBuilder(s);

System.out.println(builder);

}

}

5、练习

数组元素格式拼接

举例:int[] arr = {1,2,3};结果:[1, 2, 3]

public class Demo04StringBuilderTest {

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 builder = new StringBuilder();

builder.append("[");

for(int x=0; x<arr.length; x++) {

if(x==arr.length-1) {

builder.append(arr[x]).append("]");;

}else {

builder.append(arr[x]).append(", ");

}

}

String result = builder.toString();

return result;

}

}

字符串反转

public class Demo05StringBuilderTest {

public static void main(String[] args) {

//1:键盘录入一个字符串

Scanner sc = new Scanner(System.in);

System.out.println("请输入一个字符串:");

String s = sc.nextLine();

//3:调用方法

String result = myReverse(s);

//4:输出结果

System.out.println("result:"+result);

}

/*

* 2:写方法实现反转

* 两个明确:

*  返回值类型:String

*  参数列表:String

*/

public static String myReverse(String s) {

//String -- StringBuilder -- reverse() -- String

StringBuilder builder = new StringBuilder(s);

builder.reverse();

String result = builder.toString();

return result;

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容