练习目录:
StringBuilder的创建及几种用法
StringBuilder的链式编程
利用StringBuilder判断对称字符串
利用StringBuilder拼接字符串
StringJoiner概述与练习
StringBuilder概述
- public StringBuilder 可以看成一个容器,创建之后里卖弄的内容是可变的
- 作用:提高字符串的操作效率
- public StringBuilder() — 可以是无参也可以是有参构造
- public StringBuilder append(任意类型) — 添加数据,并返回对象本身
- public StringBuilder reverse() — 反转容器里的内容
- public int length() — 返回字符出现的个数
- public String toString() — 通过tString()就可以实现把StringBuilder转换为String
练习:
有参构造
StringBuilder sb = new StringBuilder("abc");
package StringBuilderdemo1;
public class test1 {
public static void main(String[] args) {
1.创建对象 --- 创建一个容器(有没有内容都行) new出来的都在堆里
StringBuilder sb = new StringBuilder("abc");
2.添加元素 整数 小数 字符串 字符 啥都能加 一个一个往后添加
sb.append(1.222);
sb.append(true);
System.out.println(sb);
3.反转
sb.reverse();
4.获取长度
int len = sb.length();
System.out.println(len);
打印
因为StringBuilder试java已经写好的类,java在底层对其做了一些特殊的处理。
打印对象不是地址值而是属性值
System.out.println(sb);
5.我们需要把StringBuilder变回String(字符串)
String str = sb.toString();
System.out.println(str);
}
}
链式编程:
当我们在调用一个方法的时候,不需要用变量接收他的结果,可以继续调用其他方法
package StringBuilderdemo1;
import java.util.Scanner;
public class test3 {
public static void main(String[] args) {
//链式编程:
//当我们在调用一个方法的时候,不需要用变量接收他的结果,可以继续调用其他方法
StringBuilder sb = new StringBuilder();
//添加字符串
sb.append("aaa").append("ccc").append("ddd");
System.out.println(sb);
//其实我们接收的字符串可以直接套娃使用不需要先用字符串接收
int len = getString().substring(1).replace('2','5').length();
System.out.println(len);
}
public static String getString(){
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String str = sc.next();
return str;
}
}
需求:键盘接收一个字符串,程序判断该字符串是否对称,并在控制台打出是还是否
- 使用StringBuilder的场景:
-
- 字符串的拼接
-
- 字符串的反转
package StringBuilderdemo1;
import java.util.Scanner;
public class test4 {
public static void main(String[] args) {
//对称字符串
//需求:键盘接收一个字符串,程序判断该字符串是否对称,并在控制台打出是还是否
//1.键入字符串
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String str = sc.next();
//反转
StringBuilder sb = new StringBuilder();
String result = sb.append(str).reverse().toString();
System.out.println(result);
//比较
if(str.equals(result)){
System.out.println("当前是对称字符串");
}
else {
System.out.println("不是");
}
}
}
需求:定义一个方法,把int数组中的数据按照指定的格式拼接成一个字符串返回。
package StringBuilderdemo1;
public class test5 {
public static void main(String[] args) {
//拼接字符串
//需求:定义一个方法,把int数组中的数据按照指定的格式拼接成一个字符串返回。
//1.定义数组
int[] arr = {1,2,3};
//2.调用方法,把数组变成字符串
String result = arrToString(arr);
System.out.println(result);
}
public static String arrToString(int[] arr) {
StringBuilder sb = new StringBuilder();
sb.append("[");
//3.将arr中的元素依次添加到sb中
String result = "";
for (int i = 0; i < arr.length; i++) {
if(i == arr.length-1){
result = sb.append(arr[i]+"]").toString();
}
else {
result = sb.append(arr[i]+",").toString();
}
}
return result;
}
}
StringJoiner概述与练习
StringJoiner跟StringBuilder一样,也可以看成是一个容器,创建之后里面的内容是可变的
- 作用:提高字符串的操作效率,而且代码编写特别简洁,但是目前市场上很少有人用
- StringJoiner(间隔符号);
- StringJoiner(间隔符号,开始符号,结束符号);
- 成员方法 StringJoiner add(添加内容) 添加数据,并返回对象本身
- String toString() 返回一个字符串(该字符串就是拼接之后的结果)
- length() 返回长度
package StringJoninertest;
import java.util.StringJoiner;
public class test01 {
public static void main(String[] args) {
//StringJoiner跟StringBuilder一样,也可以看成是一个容器,创建之后里面的内容是可变的
//作用:提高字符串的操作效率,而且代码编写特别简洁,但是目前市场上很少有人用
//StringJoiner(间隔符号);
//StringJoiner(间隔符号,开始符号,结束符号);
StringJoiner sj = new StringJoiner(",","[","]");
//成员方法 StringJoiner add(添加内容) 添加数据,并返回对象本身
//String toString() 返回一个字符串(该字符串就是拼接之后的结果)
//length() 返回长度
sj.add("aaa").add("bbb").add("ccc");
System.out.println(sj);
}
}
package StringJoninertest;
import java.util.StringJoiner;
public class test02 {
public static void main(String[] args) {
StringJoiner sj = new StringJoiner(",","[","]");
sj.add("aaa");
System.out.println(sj);
int len = sj.length(); //所有字符的总和 包括 [,]
System.out.println(len);
String str = sj.toString();
System.out.println(str); //本质是字符串不可以改变 StringBuilder 和 StringJoiner 都可以改变字符串的容器
}
}