1. 程式人生 > >String類和StringBuffer類常用操作

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是同步的,安全的,但是效率低。