1 常用類
1.1 string和stringbuffer
string類常用方法
.length(長度)
Java中的string類在Java.lang包中
String str = new String();
str.length()之所以要使用一個方法還不是通過屬性來獲取長度,是爲了防止
str.length=4;之類的情況發生,這樣就可以實現了面向對象封裝的特性。
另外,str.length()有一個特點 就是不論是中文還是英文,都是按照1個長度來看待的
而不是根據所佔字節來計算length長度
eg.String a="Java程序設計";a.length()=8;
indexOf (索引)
Java中字符串的查找共有四種方法,如下:
1:int indexof(String str) :返回第一次出現的指定子字符串在此字符串中的索引
2:intindexof(String str ,int startIndex);從指定的索引處開始,返回第一次出現的指定字符串
在此字符串中的索引
3:int lastIndexof(String str):返回在此字符串中最右邊出現的指定子字符串的索引
4:int lastIndexof(String str,int startIndex);從指定的索引出開始向後搜索,返回在此字符串中
最後一次出現的指定子字符串的索引
.charAt
此方法返回位於字符串中的指定索引處的字符,該字符串的索引從零開始
此方法定義的語法如下:
punlic char chatAt(int index)
參數
這裏是參數的細節
index --返回字符的索引
返回值
該方法的返回指定索引處char值
equals、 (等於)
String str4 = new String("abc");
String str5 = new String("abc");
System.out.println(str4 == str5);//判斷的是引用
System.out.println(str4.equals(str5));//判斷的是內容
String str1 = new String ("A");
String str2 = new String ("B");
String str3 = new String ("B");
boolean result1 = str1.equals(str2);
boolean result2 = str2.equals(str3);
System.out.println(result1);
System.out.println(result2);
String str6 = new String("B");
String str7 = new String("B");
String str8 = str7;
System.out.println(str8 == str7);
結果是:
最後的str8 ==7爲turn的原因是他兩個指向的是同一個String對象
再說明一點,String str = new String("abc")和String str ="abc"是有一點小區別的,對於new出來的String對象,是每new一個內存裏生成一個,也就是說其允許存在內容相同的重複對象。而String str ="abc"這種形式是不允許存在內容相同的重複對象,只要內存已經存在了,就不再新生成,而是把新的引用指向原來的對象
replace、(代替)
replace() 方法通過用 newChar 字符替換字符串中出現的所有 oldChar 字符,並返回替換後的新字符串。
語法
public String replace(char oldChar,
char newChar)
參數
- oldChar -- 原字符。
- newChar -- 新字符。
返回值
替換後生成的新字符串。
實例
public class Test {
public static void main(String args[]) {
String Str = new String("hello");
System.out.print("返回值 :" );
System.out.println(Str.replace('o', 'T'));
System.out.print("返回值 :" );
System.out.println(Str.replace('l', 'D'));
}
}
以上程序執行結果爲:
返回值 :hellT
返回值 :heDDo
split、(分裂)
把相應字符串按照格式分隔開來
split 方法:將一個字符串分割爲子字符串,然後將結果作爲字符串數組返回。
stringObj.split([separator],[limit])
參數:stringObj 必選項。要被分解的 String 對象或文字。該對象不會被 split 方法修改。
separator 可選項。字符串或 正則表達式 對象,它標識了分隔字符串時使用的是一個還是多個字符。如果忽
略該選項,返回包含整個字符串的單一元素數組。 limit可選項。該值用來限制返回數組中的元素個數。
說明:split 方法的結果是一個字符串數組,在 stingObj 中每個出現 separator 的位置都要進行分解。separator 不作爲任何數組元素的部分返回。
split 的實現直接調用的 matcher 類的 split 的方法。“ . ”在正則表達式中有特殊的含義,因此我們使用的時候必須進行轉義"\\."
如果用豎線“|”分隔的話,將出現不可得到的結果,必須改爲“\\|”
,+ * 不是有效的模式匹配規則表達式,用"//*" "//+"轉義後即可得到正確的結果。
substring、(子串,子鏈)
可是實現截取字符串
trim、(修剪)
最後總結一下:
String.Trim()方法會去除字符串兩端,不僅僅是空格字符,它總共能去除25種字符:
('/t', '/n', '/v', '/f', '/r', ' ', '/x0085', '/x00a0', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '?', '/u2028', '/u2029', ' ', '?')
如果你想保留其中的一個或多個(例如/t製表符,/n換行符,/r回車符等),請慎用Trim方法。
請注意,Trim刪除的過程爲從外到內,直到碰到一個非空白的字符爲止,所以不管前後有多少個連續的空白字符都會被刪除掉。
最後附上兩個相關的方法(也是String類直接提供的),分別去除字符串頭部空白字符的TrimStart方法和去除字符串尾部空白字符的 TrimEnd方法:
TrimStart和TrimEnd方法
如果想去除字符串兩端其他任意字符,可以考慮Trim他的重載兄弟:String.Trim(Char[]),傳入你想要去除的哪些字符的數組。
源碼奉上:
public string Trim(params char[] trimChars)
{
if ((trimChars == null) || (trimChars.Length == 0))
{
trimChars = WhitespaceChars;
}
return this.TrimHelper(trimChars, 2);
}
空格 != 空白字符,刪除空格請使用: Trim(‘ ‘);
format。(格式)
按格式輸出
StringBuffer類常用方法:(伸縮緩衝器)
append、(追加)
public static void main(String[] args) {
StringBuffer buf = new StringBuffer("Hard");
String astring="waxworks";
System.out.println(buf.append(astring,3,8));//buf加上astring中的字符串下標3到下標8的字符
StringBuffer buf1 = new StringBuffer("Hard");
char [] text = {'W','a','x','w','o','r','k','s'};
System.out.println(buf1.append(text,3,5));//buf1加上從數組的下標爲3的地方開始加上下標3本身往後查五個
}
}
insert、(插入)
public static void main(String[] args) {
StringBuffer str = new StringBuffer("qwer");
System.out.println(str.insert(1,"ang"));//先選中在字符串中的第幾位,在插入所需要插入的內容
}
}
delete、(刪除)
deleteCharAt、(刪除程序)
StringBuffer buf = new StringBuffer("123456789123");
//delete刪除程序
//刪除字符串中第五個的後一個到第九個字符
buf.delete(5,9);
System.out.println(buf);
buf = new StringBuffer("abcd");
System.out.println(buf);
//刪除第二個的後一個
buf.deleteCharAt(2);
System.out.println(buf);
}
}
replace、(代替)
public static void main(String[] args) {//代替
//將第三個的下一個到第八個刪除,並替換成haha
StringBuffer str = new StringBuffer("qwertyuio");
System.out.println(str.replace(3,8,"haha"));
}
}
setCharAt、
public static void main(String[] args) {
//這個方法主要用來替換
StringBuffer str = new StringBuffer("LOVE");
str.setCharAt(0,'a');
System.out.println(str);
}
}
reverse。(顛倒)
public static void main(String[] args) {
StringBuffer str = new StringBuffer("abc");
StringBuffer str1 = new StringBuffer();
str1 = str.reverse();
System.out.println(str1);
}
}
String 是不可更改的,如需改字符串內容用StringButter