兩者最大的區別是:immutable和mutable.
調用String的方法返回的永遠是一個新的String。調用該方法的對象是不會改變的。但是StringBuilder的對象調用方法可以改變StringBuilder本身。
利用StringBuilder搭建好String后,可以利用new String(StringBuilder strb)來創建一個最終的String.
下面羅列String常用的方法(多用多記):
Sting的構造器:String (char[] val); String (String str); String(StringBuffer, buffer); String(StringBuilder builder); 當然,還有一個非常實用的:String(char[] val, int offset, int count); 設置偏移量和長度之后可以直接截取char array的一部分作為字符串。
char charAt(int index);
String是實現了Comparable的,所以里面有int compareTo(String str); 字典比較
int compareToIgnoreCase(String str)
boolean startWith(String PRefix) or boolean startWith(String prefix, int offset);
boolean endWith(String suffix)
equals and equalsIgnoreCase(String str);
對比String在構造器當中可以用String(char[] array, int offset, int length)來截取字符數組的一部分來創建String,而String類型對象除了可以使用toCharArray()轉換為字符數組外,還能使用getChars(int begin, int end, char[] dst, int dstBegin)來獲取對應的一部分String.
搜索字符時最常用的:
indexOf(char target, int fromIndex) 和 indexOf(char target)
indexOf(String str, int fromIndex) 和 indexOf(String str)
以及對應的
LastIndexOf(char target, int fromIndex) 和 LastIndexOf(char target)
LastIndexOf(String str, int fromIndex) 和 LastIndexOf(String str)
如何判斷是否有重復字符?
看看indexOf和lastIndexOf返回的值是否一樣。
替代該字符串中所有出現的target字符串且返回替代后的String?
String res = replaceAll(String target, String replaceStr);
替代該字符串中第一個出現的target字符串且返回替代后的String?
String res = replaceFirst(String target, String replaceStr);
去子字符串:
String substring(int begin) or String substring(int begin, int end); //前閉后開
去掉開頭和結尾空格
trim() -- 返回一個去掉開頭和結尾空格的String.
所有的字符變為大寫或者小寫?
toLowerCase() and toUpperCase
將其它的基本類型和字符數組變為String:
String.valueOf(float tmp) and etc.
下面羅列StringBuilder常用的方法(多用多記):
下面重點來了,StringBuilder是沒有用char array作為參數的帶參構造器的。java的quiz就考過這樣的題了。
有以下的帶參構造器:StringBuilder(int capacity)和StringBuilder(String str)。
常用的幾個方法:
所有的基本類型 + String 和 char[] 的append. 對于char[]還有:append(char[] array, int offset, int len);
還有delete(int start, int end) 和 deleteCharAt(int index);
還有insert (int offset, primitive var); 所有的基本類型 + String 和 char[],對于char[] 同樣有:int offset, int len
還有setChar(int index, char ch);
同樣的,和String有一樣的如下方法:replace(int start, int end, String str), indexOf, lastIndexOf, charAt, getChars.
新聞熱點
疑難解答