String類和StringBuffer類常用操作
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類主要方法的使用
StringBuffer是一字串緩衝區物件,和陣列相似是個容器(它的底層就是個可變長度的陣列)。
一 .它和陣列在儲存資料方面的區別是:StringBuffer可以把基本資料型別通過append(新增)方法以字串連線在一起。
而陣列僅僅儲存的一種資料是它new時宣告的。
簡單說就是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();
八、清空快取區的方法(清空不是刪除,清空後該緩衝區還在)。
1.
StringBuffer sb = new StringBuffer();
sb.setLength(0);
2.
StringBuffer sb = new StringBuffer();
sb.delete(0 , sb.length());
3.(不建議使用)
StringBuffer sb = new StringBuffer();
sb = new StringBuffer();
4.
StringBuffer是同步的,安全的,但是效率低。