什么是StringBuilder?
StringBuilder可以看成是一个容器,创建之后里面的内容是可变的。
构造方法
成员方法
用IDEA来实现:
1.简单的添加,反转和获得长度
public class StringBuilderDemo1 {
public static void main(String[] args) {
//StringBuilder
/*注意:因为StringBuilder是java已经写好的类,
Java在底层对他做了一些特殊处理;打印对象不是地址值而是属性*/
//1.创建对象
StringBuilder sb = new StringBuilder("要开心");
//2.添加元素
sb.append(1);
sb.append(9.9);
sb.append(true);
//反转
sb.reverse();
//获取长度
int len = sb.length();
System.out.println(sb);
System.out.println(len);
}
}
2.使用toString方法将StringBuilder中sb对象变成字符串
public class StringBuilderDemo2 {
public static void main(String[] args) {
//1.创建对象
StringBuilder sb = new StringBuilder();
//2.添加字符串
sb.append("2024");
sb.append("一");
sb.append("定");
sb.append("要");
sb.append("开");
sb.append("心");
sb.append("呀");
sb.append("!");
//System.out.println(sb);
/*sb是StringBuilder类型的容器!!!帮助我们操作字符串的工具
所以sb不能被当作是字符串*/
//所以还需要把StringBuilder变回字符串才可以
//3.把StringBuilder变回字符串
String str = sb.toString();
System.out.println(str);
//变成字符串之后就可以用字符串里面的其他方法了
}
}
3.了解什么是链式编程
import java.util.Scanner;
public class StringBuilderDemo3 {
public static void main(String[] args) {
/*链式编程:
当我们在调用一个方法的时候,不需要用变量接收他的结果,
可以继续调用其他方法*/
int len = getString().substring(1).replace("王义凡", "你要幸福").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的场景: 1.字符串的拼接 2.字符串的反转
4.练习:判断字符串是否对称
import java.util.Scanner;
public class StringBuilderDemo4 {
public static void main(String[] args) {
/*使用StringBuilder的场景:
1.字符串的拼接
2.字符串的反转*/
//判断字符串是否对称
//1。分析:键盘录入字符串;判断是否对称;控制台打印是或不是
//对称:正着和反着是一样的
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String str = sc.next();
//2.反转键盘录入的字符串
String result = new StringBuilder().append(str).reverse().toString();
System.out.println(result);
//3.比较abc
if(str.equals(result)){
System.out.println("是");
}else {
System.out.println("不是");
}
}
}
5.练习:定义一个方法,拼接字符串
不使用String Builder:
public class StringDemo7 {
public static void main(String[] args) {
//拼接字符串
/*定义一个方法
1.我要干嘛? ---遍历数组并拼接成一个字符串
2.我干这件事需要什么才能完成? ---数组
3.我干完了是否要把结果返回给调用处 ---返回一个拼接之后的字符串
如果调用处需要继续使用,那么必须返回
如果调用处不需要继续使用,那么可以返回也可以不返回 */
//定义一个数组
int[] arr = {1,2,3};
//调用方法
String str = arrToString(arr);
//输出打印
System.out.println(str);
}
public static String arrToString(int[] arr){
if (arr == null){
return "";
}
if (arr.length == 0){
return "[]";
}
String result = "[";//拼接后结果的左括号 数组从[开始拼接
//当代码执行到这里表示什么?
//表示数组不是null,也不是长度为0的
for (int i = 0; i < arr.length; i++) {
//i --> 索引 arr[i] --> 元素
if (i == arr.length - 1){
//拼接最后一个元素后面不加,
result = result +arr[i];
}else{
//其余元素之间加,
result = result + arr[i] + ", ";
}
}
//拼接最后的]
result = result + "]";
return result;
}
}
使用StringBuilder:
public class StringBuilderDemo5 {
public static void main(String[] args) {
//定义一个方法,拼接字符串 不用stringbuilder -->StringDemo7
//1.定义数组
int[] arr = {1,2,3};
//2.调用发放把数组变成字符串
String str = arrToString(arr);
System.out.println(str);
}
public static String arrToString(int[] arr){
//首先创建一个sb对象
//1.将[拼接进去
StringBuilder sb = new StringBuilder();
sb.append("[");
//String result = "";
for (int i = 0; i < arr.length; i++) {
if (i == arr.length - 1){
sb.append(arr[i]).append("]");
}else {
sb.append(arr[i]).append(", ");
}
//result = sb.toString();
}
//return result;
return sb.toString();
}
}
什么是StringJoiner?
用这个类首先要创建这个类的对象!
构造方法
没有空参构造!
成员方法
也可以使用链式编程的思想。
用IDEA来实现:
简单的创建对象指定间隔符号,添加元素
import java.util.StringJoiner;
public class StringJoinerDemo1 {
public static void main(String[] args) {
//1.创建一个对象,并指定中间的间隔符号
StringJoiner sj = new StringJoiner("---");
//2.添加元素
sj.add("aaa").add("bbb").add("ccc");//不能添加整数,目前为止只能添加字符串,
// 结果就是StringJoiner的一个容器对象
//3.打印结果
System.out.println(sj);
System.out.println(sj.toString());
}
}
import java.util.StringJoiner;
public class StringJoinerDemo2 {
public static void main(String[] args) {
//1.创建对象
StringJoiner sj = new StringJoiner(", ","[","]");
//2.添加元素
sj.add("aaa").add("bbb").add("ccc");
int len = sj.length();
System.out.println(len);
//3.打印
System.out.println(sj);
}
}
总结