字符串的反转,拼接和计算长度
package StringBuilder;
public class test1 {
public static void main(String[]args) {
//1创建对象
StringBuilder sb=new StringBuilder("abc");
//2.添加元素
sb.append(1);
sb.append(2.33);
sb.append(true); //abc12.33true
sb.reverse(); //会反转之前输入的东西 //eurt33.21cba
//StringBuilder是个容器,里面的东西是会变化的
//获取长度
int len=sb.length();
System.out.println(len); //12
//打印
//StringBuilder是Java已经写好的类
//打印对象不是地址值而是属性值
System.out.println(sb);
}
}
把字符数组变为字符串的操作
package StringBuilder;
public class test1 {
public static void main(String[]args) {
//1创建对象
StringBuilder sb=new StringBuilder("abc");
//2.添加元素
sb.append(1);
sb.append(2.33);
sb.append(true); //abc12.33true
sb.reverse(); //会反转之前输入的东西 //eurt33.21cba
//StringBuilder是个容器,里面的东西是会变化的
//获取长度
int len=sb.length();
System.out.println(len); //12
//打印
//StringBuilder是Java已经写好的类
//打印对象不是地址值而是属性值
System.out.println(sb);
}
}
package StringBuilder;
import java.util.Scanner;
//链式编程
//当我们在调用一个方法的时候,不需要用变量接收他的结果,可以继续调用其他方法
public class test3 {
public static void main(String[]args) {
//整数后面就不能再调用方法了
//链式编程,依赖前面的结果去做后面的事情
int len=getString().substring(1).replace("A","Q").length();
System.out.println(len);
}
public static String getString() {
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个字符串");
String str=sc.next();
return str;
}
}
判断一个字符串是否为对称字符串
//小练习
/*对称字符串
* 要求:键盘接收一个字符串,程序判断出来=该字符串是否为对称字符串,并在控制台打印是或者不是
* 对称字符串:123321,111
* 非对称字符串:123123*/
package StringBuilder;
import java.util.Scanner;
//小练习
/*对称字符串
* 要求:键盘接收一个字符串,程序判断出来=该字符串是否为对称字符串,并在控制台打印是或者不是
* 对称字符串:123321,111
* 非对称字符串:123123*/
public class test4 {
//使用StringBuilder的场景:
/*字符串的拼接 字符串的反转*/
public static void main(String[]args) {
//1.键盘录入一个字符串
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个字符串");
String str=sc.next();
//
//反转键盘录入的字符串
/* StringBuilder sb=new StringBuilder();
sb.append(str);
sb.reverse();
System.out.println(sb);
*/
//可以改进
String result=new StringBuilder().append(str).reverse().toString();
//比较
if(str.equals(result)) {
System.out.println("当前字符串是对称字符串");
}else {
System.out.println("当前字符串不是对称字符串");
}
}
}
StringBuilder计算长度和容量的函数和扩容规则:
从当前容量开始扩容
- 一次追加长度超过当前容量,则会按照 当前容量*2+2 扩容一次
- 一次追加长度不仅超过初始容量,而且按照 当前容量*2+2 扩容一次也不够,其容量会直接扩容到与所添加的字符串长度相等的长度。之后再追加的话,还会按照 当前容量*2+2进行扩容
package StringBuilder;
public class test7 {
public static void main(String[]args) {
StringBuilder sb=new StringBuilder();
//容量:容量是多少
//长度:长度是多少
System.out.println(sb.capacity()); //计算容量的函数 16
System.out.println(sb.length()); //计算长度的方法 0
sb.append("abc");
System.out.println(sb.capacity()); //计算容量的函数 16
System.out.println(sb.length()); //计算长度的方法 3
sb.append("defghijklmnopqrstuvwxyz");
System.out.println(sb.capacity()); //计算容量的函数 16*2+2=34
System.out.println(sb.length()); //计算长度的方法 24
sb.append("1234567890");
System.out.println(sb.capacity()); //计算容量的函数 70
System.out.println(sb.length()); //计算长度的方法 38
}
}