StringBuilder
StringBuilder是一個可變的字符串,字符串的緩衝區類
StringBuilder和String的區別
- 我們在對字符串做拼接處理的時候,每一次的拼接,都會構造一個新的String對象,耗時,佔用空間
StringBuilder的構造方法
- public StringBuilder()
成員方法:
- public int capacity()//返回當前容量
- public int length()//返回長度(字符數)
StringBuilder 的常用方法
- 添加:public StringBuilder append(任意類型)
- 反轉:public StringBuilder reverse()
使用String進行字符串拼接時的內存
package com.it01;
/*
* StringBuilder的常用方法
* 添加:public StringBuilder append(任意類型)
* 反轉:public StringBuilder reverse()
*/
public class StringBuilderDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
//創建對象
StringBuilder sb = new StringBuilder();
System.out.println("sb的容量:"+sb.capacity());
System.out.println("sb的長度:"+sb.length());
System.out.println("sb:"+sb);
//添加:public StringBuilder append(任意類型)
StringBuilder sb2 = sb.append("wang");
System.out.println("sb:"+sb);
System.out.println("sb2:"+sb2);//添加數據並返回自身對象(可以鏈式編程-對象可以調用方法)
//反轉:public StringBuilder reverse()
System.out.println("反轉後的數據爲:"+sb2.reverse());
}
}
StringBulider和String之間的轉換(使用對方的功能)
package com.it01;
/*
* StringBulider和String之間的轉換(使用對方的功能)
*
*/
public class StringBuilderTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
//toString將StringBulider轉爲String
StringBuilder sb = new StringBuilder();
sb.append("wang");
String s = sb.toString();
//StringBuilder(String str)-將String轉爲StringBulider
String ss = "hello";
StringBuilder sb1 = new StringBuilder(ss);
}
}
將數組利用StringBuilder的方法拼接成字符串
package com.it01;
/*
* 將數組拼成一個字符串
*/
public class StringBuilderTest1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arr = {1,2,3,4,5};
StringBuilder sb = new StringBuilder();
sb.append("[");
for (int x=0;x<arr.length;x++) {
if (x==arr.length-1) {
sb.append(arr[x]);
}else {
sb.append(arr[x]);
sb.append(",");
}
}
sb.append("]");
String s = sb.toString();
System.out.println(s);
}
}
判斷字符串是否爲對稱數據
package com.it01;
import java.util.Scanner;
/*
* 判斷對稱字符串(反轉後和反轉前字符串相同)
*
*/
public class StringBuilderTest2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//鍵盤錄入字符串
Scanner sc = new Scanner(System.in);
System.out.println("請輸入字符串");
String s = sc.nextLine();
//調用方法進行判斷
System.out.println(isDc(s));
}
public static boolean isDc(String s){
//先將字符串轉成StringBuilder
StringBuilder sb = new StringBuilder(s);
//調用StringBuilder的方法將字符串進行反轉
String ss = sb.reverse().toString();
if (ss.equals(s)) {
System.out.println("字符串是對稱字符串");
}else {
System.out.println("字符串不是對稱字符串");
}
return (ss.equals(s));
}
}