StringBuilder可以看成是一个容器,创建之后里面的内容是可变的
作用:提高字符串的操作效率
1.append(任意类型) 和reverse()均是操作,没有返回值,但是操作之后的结果仍然是stringbuilder类,所以可以在此基础上append()和reverse()也是可以的,这就是链式
2.append()括号里的可以是整数类型,放到stringbuilder容器里也变成了字符串
3.length()和toString()均有返回值,前者返回的是int类型,是字符串的长度,后者是string类型
使用示例:
package com.itbaima.exe03;
public class stringbuilder01 {
public static void main(String[] args) {
//1.创建对象
StringBuilder sb =new StringBuilder("abc");
//2.添加元素
sb.append("aaa");
sb.append("bbb");
sb.append("ccc");
System.out.println(sb);
//3.反转
sb.reverse().append("111");
System.out.println(sb);
}
}
注意:因为stringbuilder是Java已经写好的类,Java在底层对他做了一些特殊处理,打印创建的对象不是地址值而是属性值,其实就是容器中字符串的值
//4.字符串的长度
System.out.println(sb.length());
//5.stringbuilder转换成string类型
String str=sb.toString();
System.out.println(str);
链式编程:
当我们在调用一个方法时,不需要用变量接收他的结果,可以继续调用其他方法
package com.itbaima.exe03;
import java.util.Scanner;
public class stringbuilder02 {
public static void main(String[] args) {
//链式编程
int len=getString().substring(1).replace("A","C").length();
System.out.println(len);
}
public static String getString(){
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个字符串");
String str=sc.next();
return str;
}
}
因为只要是string类型都能用substring()、replace()、length()、equals(),而substring()和replace()返回的也是字符串类型,所以可以一直方法下去,链式编程
再比如:
package com.itbaima.exe03;
public class stringbuilder03 {
public static void main(String[] args) {
StringBuilder sb=new StringBuilder();
sb.append("aaa").append("bbb").append("ccc").append("ddd").reverse();
System.out.println(sb);
String str=sb.toString();
System.out.println(str);
}
}
练习:
1、拼接字符串
int []arr={1,2,3} 变成[1,2,3]
(如何把一个整数变成字符串??? 先定义一个空字符串,然后用+把整数变成字符串)
package com.itbaima.exe03;
public class 拼接字符串 {
public static void main(String[] args) {
int []arr={1,2,3};
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(",");
}
}
System.out.println(sb);
}
}
2、判断是否对称字符串
package com.itbaima.exe03;
import java.util.Scanner;
public class 判断是否对称字符串 {
public static void main(String[] args) {
//1.键盘录入一个字符串
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个字符串");
String str=sc.next();
StringBuilder sb=new StringBuilder(str);
String str2=sb.reverse().toString();
if(str.equals(str2)){
System.out.println("该字符串是对称字符串");
}
else{
System.out.println("该字符串不是对称字符串");
}
}
}
中间str2还可以这样生成:
String str2=new StringBuilder(str).reverse().toString();
今天和博士师兄确认了要跟他做毕设,明天要开始看论文了,Java也会继续学,加油!!!
今天和pd一起学习,好开心