String類是字符串常量,是不可更改的常量。而StringBuffer是字符串變量,它的對象是可以擴充和修改的。StringBuffer在進行字符串處理時,不生成新的對象,在內存使用上要優於String類。所以在實際使用時,如果經常需要對一個字符串進行修改,例如插入、刪除等操作,使用StringBuffer要更加適合一些。
String類主要方法的使用
一、創建並初始化字符串:
String s = "hello!"; //使用字符串常量直接初始化 String(); //使用構造方法創建並初始化,初始化一個對象,表示空字符序列 String(value); //利用已存在的字符串常量創建一個新的對象 String (char[] value); //利用一個字符數組創建一個字符串 String(char[] value,int offset,int count);//截取字符數組offset到count的字符創建一個非空串 String(StringBuffer buffer); //利用StringBuffer對象初始化String對象
二、String類主要方法的使用:
1、獲取長度
*.length(); //這與數組中的獲取長度不同,*.length;
2、比較字符串
(1)equals() //判斷內容是否相同 (2)compareTo() //判斷字符串的大小關系 (3)compareToIgnoreCase(String int) //在比較時忽略字母大小寫 (4)== //判斷內容與地址是否相同 (5)equalsIgnoreCase() //忽略大小寫的情況下判斷內容是否相同 //如果想對字符串中的部分內容是否相同進行比較,可以用 (6)reagionMatches() //有兩種 public boolean regionMatches(int toffset, String other,int ooffset,int len);表示如果String對象的一個子字符串與參數other的一個子字符串是相同的字符序列,則為true.要比較的String 對象的字符串從索引toffset開始,other的字符串從索引ooffset開始,長度為len。 public boolean reagionMatches(boolean ignoreCase,int toffset,String other,int ooffset,int len);//用布爾類型的參數指明兩個字符串的比較是否對大小寫敏感。
三、查找字符串中某個位置的字符
public char charAt(int index); //返回指定索引index位置上的字符,索引范圍從0開始
四、查找指定字符串在字符串中第一次或最后一詞出現的位置
在String類中提供了兩種查找指定位置的字符串第一次出現的位置的方法
(1)public int indexOf(String str); //從字符串開始檢索str,並返回第一次出現的位置,未出現返回-1 (2)public int indexOf(String str,int fromIndex); //從字符串的第fromIndex個字符開始檢索str
查找最后一次出現的位置有兩種方法
(1)public int lastIndexOf(String str); (2)public int lastIndexOf(String str,int fromIndex);
如果不關心字符串的確切位置則可使用
public boolean contains(CharSequence s);
五、檢查字符串的起始字符和結束字符
開始的字符串兩種方法
(1)public boolean starWith(String prefix,int toffset);//如果參數prefix表示的字符串序列是該對象從索引toffset處開始的子字符串,則返回true (2)public boolean starWith(String prefix);
結束的字符串方法
public boolean endsWith(String suffix);
六、截取子串
(1)public String subString(int beginIndex); (2)public String subString(int beginIndex, int endIndex);//返回的字符串是從beginIndex開始到endIndex-1的串
要返回后4位可以這樣寫
Syetem.out.println(*.subString()(*.length()-4));
七、字符串的替換
兩種方法
(1)public String replace(char oldChar,char newChar); (2)public String replace(CharSequence target,CharSequence replacement);//把原來的etarget子序列替換為replacement序列,返回新串 (3)public String replaceAll(String regex,String replacement); //用正則表達式實現對字符串的匹配
八、字符串的大小寫替轉換
(1)public String toLowerCase(Locale locale); (2)public String toLowerCase(); (3)public String toupperCase(Locale locale); (4)public String toUpperCase();
九、去除字符串首尾空格
*.trim();
十、字符串轉換
1、將字符串轉換成字符數組
public char[] toCharArray();
2、將字符串轉換成字符串數組
public String[] split(String regex);//regex 是給定的匹配
3、將其它數據類型轉化為字符串
(1)public static String valueOf(boolean b); (2)public static String valueOf(char c); (3)public static String valueOf(int i); (4)public static String valueOf(long i); (5)public static String valueOf(float f); (6)public static String valueOf(double d); (7)public static String valueOf(char[] data); (8)public static String valueOf(Object obj);
StringBuffer類主要方法的使用
一、可變字符串的創建和初始化
兩種方法:
public StringBuffer(); public StringBuffer(int caoacity);
二、獲取可變字符串長度
public int length(); public int capacity(); public void setLength(int newLength);
三、比較可變字符串
用String 類的equals()方法比較,但是不同。
類Object中的equals()方法比較的是兩個對象的地址是否相等,而不僅僅是比較內容,但是
- String類在繼承Object類的時候重寫了equals()方法,只是比較兩個對象的內容是否相等
- StringBuffer類中沒有重寫Object類的equals()方法,所以比較的是地址和內容。
四、追加和插入字符串
public StringBuffer append(type t);//追加 public StringBuffer insert(int offset,type t);//插入,在offset處加入類型為type的字符串
五、反轉和刪除字符串
public StringBuffer reverse(); //反轉 public StringBuffer delete(int start,int end); //刪除
六、減少用於可變字符序列的存儲空間
public void trimToSize();
七、StringBuffer類轉換成String類
public String toString();