阶段二4_常用API之StringBuilder
创始人
2024-05-24 06:41:37
0

一. StringBuilder类概述

概述 :
StringBuilder 是一个可变的字符串类,我们可以把它看成是一个容器,这里的可变指的是 StringBuilder 对象中的内容是可变的。
作用:
提高供字符串的操作效率
案例:

/**证明StringBuilder提高供字符串的效率案例代码*/
public class Demo1StringBuilder {public static void main(String[] args) {method1();method2();}/** 耗时: 2939毫秒 */public static void method1() {// 获取1970年1月1日 0时0分0秒 到当前时间所经历过的毫秒值long start = System.currentTimeMillis();  String s = "";for(int i = 1; i <= 50000; i++){s += i;}System.out.println(s);long end = System.currentTimeMillis();System.out.println(end - start);}/** 耗时: 239毫秒*/public static void method2(){long start = System.currentTimeMillis();StringBuilder sb = new StringBuilder();for(int i = 1; i <= 50000; i++){sb.append(i);}System.out.println(sb);long end = System.currentTimeMillis();System.out.println(end - start);}
}

二. StringBuilder常用构造方法

1.构造方法:
public StringBuilder() : 创建一个空白可变字符串对象,不含有任何内容
public StringBuilder(String str) : 根据字符串的内容,来创建可变字符串对象
2.构造方法代码说明:

public class Demo2StringBuilder {public static void main(String[] args) {StringBuilder sb = new StringBuilder();System.out.println(sb); //打印空白字符串StringBuilder sb2 = new StringBuilder("abc");System.out.println(sb2); //打印abc字符串}
}

3.StringBuilder常用成员方法:
public StringBuilder append(任意类型) : 添加数据,并返回对象本身
public StringBuilder reverse() : 返回相反的字符序列
public int length() : 返回长度 (字符出现的个数)
public String toString() : 通过toString()就可以实现把StringBuilder转换为String

public static void main(String[] args) {StringBuilder sb = new StringBuilder();//1.append可以传任意数据类型sb.append("123");sb.append("蓝色");sb.append(true);System.out.println(sb);//2.链式编程: 如果一个方法返回的是对象类型, 对象就可以继续向下调用方法.sb.append("红色").append("蓝色").append("绿色");//3.reverse()返回相反的字符序列System.out.println("反转前:" + sb);sb.reverse();System.out.println("反转后:" + sb);//4.length?()返回长度System.out.println("sb中字符的个数为:" + sb.length());//5.toString() 通过toString()就可以实现把StringBuilder转换为StringString s = sb.toString();System.out.println(s);
}

4.StringBuilder提供字符串的操作原理图
图1:StringBuilder提供效率原理图1.png
在这里插入图片描述

图2:StringBuilder提供效率原理图2.png
在这里插入图片描述

5.StringBuilder和String的区别(最大的区别)

String:内容是不可变的
StringBuilder:内容是可变的
原因:
SringBuilder添加字符串返回对象本身,可以继续添加字符串,从而内容就变化了
String一个字符串就是一个对象

6.StringBuilder练习案例
需求:
键盘接受一个字符串,程序判断出该字符串是否是对称字符串,并在控制台打印是或不是
对称字符串:123321、111
非对称字符串:123123
思路:

  1. 键盘录入一个字符串,用 Scanner 实现
  2. 将键盘录入的字符串反转
  3. 使用反转后的字符串,和原字符串进行比对
  4. 如果相同,则输出是对称字符串,反之输出不是对称字符串
public class Test8 {public static void main(String[] args) {// 1. 键盘录入一个字符串,用 Scanner 实现Scanner sc = new Scanner(System.in);System.out.println("请输入对称字符串:");String s = sc.nextLine();// 2. 将键盘录入的字符串反转// 将字符串封装为StringBuilder对象, 目的是为了掉用其反转的方法StringBuilder sb = new StringBuilder(s);sb.reverse();String reverseStr = sb.toString();// 3. 使用反转后的字符串,和原字符串进行比对if(s.equals(reverseStr)){System.out.println("是对称字符串");}else{System.out.println("不是对称字符串");}}
}

7.String相互转换

  StringBuilder转换为Stringpublic String toString():通过 toString() 就可以实现把 StringBuilder 转换为 StringString转换为StringBuilderpublic StringBuilder(String s):通过构造方法就可以实现把 String 转换为 StringBuilder

8.字符串拼接案例
需求:定义一个方法,把 int 数组中的数据按照指定的格式拼接成一个字符串返回
调用该方法,并在控制台输出结果。
例如,数组为int[] arr = {1,2,3};
执行方法后的输出结果为:[1, 2, 3]
思路:
1. 定义一个 int 类型的数组,用静态初始化完成数组元素的初始化
2. 定义一个方法,返回值类型 String,参数列表 int[] arr
3. 在方法中用 StringBuilder 按照要求进行拼接,并把结果转成 String 返回
4. 调用方法,用一个变量接收结果
5. 输出结果

public class Test9 {public static void main(String[] args) {// 1. 定义一个 int 类型的数组,用静态初始化完成数组元素的初始化int[] arr = {1,2,3};// 4. 调用方法,用一个变量接收结果String s = arrayToString(arr);// 5. 输出结果System.out.println(s);}// 2. 定义一个方法,返回值类型 String,参数列表 int[] arrpublic static String arrayToString(int[] arr){// 3. 在方法中用 StringBuilder 按照要求进行拼接,并把结果转成 String 返回StringBuilder sb = new StringBuilder("[");for (int i = 0; i < arr.length; i++) {if(i == arr.length -1){sb.append(arr[i]).append("]");}else{sb.append(arr[i]).append(", ");}}return sb.toString();}
}

三. 更多精彩内容请查看下面链接

http://www.gxcode.top/code
在这里插入图片描述

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...