StringBuilder是一个可变的字符串类,我们可以把它看成一个容器
1.作用
提高字符串的操作效率
public class Demo1StringBuilder {
public static void main(String[] args) {
method2();
//method1();
}
public static void method2() {
//用时:11
StringBuilder sb = new StringBuilder();
long start = System.currentTimeMillis();
for (int i = 1; i < 50000; i++) {
sb.append(i);
}
System.out.println(sb);
long end = System.currentTimeMillis();
System.out.println("=========================================");
System.out.printf(String.valueOf(end - start));
}
public static void method1() {
//用时:878
long start = System.currentTimeMillis();
String s = "";
for (int i = 1; i < 50000; i++) {
s += i;
}
System.out.printf(s);
long end = System.currentTimeMillis();
System.out.printf("======================================");
System.out.printf(String.valueOf(end - start));
}
}
2.常用构造方法
StringBuilder sb = new StringBuilder();
System.out.println(sb);
StringBuilder sb1 = new StringBuilder("abc");
System.out.println(sb1);
3.常用方法
4.StringBuilder和String区别
String:内容是不可变的
StringBuilder:内容是可变的
5.对称字符串
需求:键盘接收一个字符串,程序判断出该字符串是否是对称字符串,并在控制台打印是或不是
对称字符串:123321、111
非对称字符串:123123
思路:
① 键盘录入一个字符串,用Scanner实现
② 将键盘录入的字符串反转
③ 使用反转的字符串与原字符串进行比对
④ 如果相同,则输出的是对称字符串,反之输出不是对称字符串
public class Demo4StringBuilder {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入:");
String s = sc.nextLine();
StringBuilder sb = new StringBuilder(s);
sb.reverse();
String reverseStr = sb.toString();
if (s.equals(reverseStr)){
System.out.println(sb+"是对称字符串");
}else {
System.out.println(sb+"不是对称字符串");
}
}
}
6.StringBuilder和String的相互转换
① StringBuilder转换为String
② String转换为StringBuilder
7.拼接字符串
需求:定义一个方法,把int数组中的数据按照指定的格式拼接成一个字符串返回,调用该方法,并在控制台输出结果。例如,数组为int[] arr = {1,2,3};,执行方法过后的输出结果为[1,2,3]
思路:
① 定义一个int类型的数组,用静态初始化完整数组元素的初始化
② 定义一个方法,用于把int数组中的数据按照指定格式拼接成一个字符串返回。返回值类型是String,参数列表int[] arr
③ 在方法中用StringBuilder按照要求进行拼接,并把结果装成String返回
④ 调用方法,用一个变量接收结果
⑤ 输出结果
public class Demo5StringBuilder {
public static void main(String[] args) {
int[] arr = {1, 2, 3};
String s = arrayToString(arr);
System.out.printf(s);
}
public static String arrayToString(int[] arr) {
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();
}
}