程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> J2SE >> J2SE綜合之淺談String類的相關應用

J2SE綜合之淺談String類的相關應用

編輯:J2SE

字符串類,包含了字符串的值和實現字符串相關操作的一些方法。

其實字符串在Java中的實現比較特殊,你可以不使用構造方法,就可以直接獲得一個字符串對象。

String str1 = "test";//不使用構造方法

String str2 = new String("test");//使用構造方法

實際上以上兩者的效果是相同的,就是創建了一個內容為"test"的字符串。

下面我們來說一下String類本身的特性。

首先需要注意到的是String是一個final類,所以你無法讓自己寫一個類來繼承String的變量和方法。

String類的另一點特性是,一旦你創建了一個String類,那麼它的值便無法再做更改了。雖然String類包

含substring()一類可以返回子字符串的方法,但實際上,這些方法並沒有對原來的String類的內容做任

何修改,它們只是新建了另一個String類,並把它作為結果返回而已。這一點對程序設計產生的影響我們

在後面還會討論到。

後一點特性是需要背過的,否則在後期的程序設計和程序優化過程中都可能會遇到問題。切記,切記。

簡單介紹幾個常用的方法。

public boolean equals(Object obj)

判斷當前字符串與obj的內容是否相同

public boolean equalsIgnoreCase(String str)

判斷當前字符串與str的內容是否相同,這個方法不會區分大小寫字母的區別

public int length()

返回字符串的長度,即字符的總個數

public String trim()

去掉字符串兩端的空白,包括“空格,\t,\n,\r等控制符”

public String substring(int start,int end)

根據開始和結束的位置,返回當前String的子字符串

public String substring(int start)

從開始位置開始到字符串結束,返回子字符串

public char charAt(int index)

返回指定位置的字符

public int indexOf(String str)

返回子字符串在當前字符串的位置,如果當前字符串不包含子字符串就返回-1

public String concat(String str)

返回一個字符串,內容是當前字符串與str連接而成的。

字符串連接可以簡化寫為String str = str1 + str2;結果與concat方法相同

public boolean startsWith(String str)

判斷當前字符串,是否以str開頭

public boolean endsWith(String str)

判斷當前字符串,是否以str結尾

String str = "I am " + "Lingo!";

這樣可以獲得一個內容為"I am Lingo!"的字符串,在Java裡可以通過這種簡單的方式實現字符串的連接

。這裡需要注意的是,這個過程實際上生成了三個String對象,"I am "和"Lingo!"先被生成,然後用他

們再創建一個String對象str,str的內容是兩者的總和。所以,使用+進行字符串連接的時候會很耗費資

源,這個時候就需要使用另一個類StringBuffer,它的內容是可以修改的,實際上jvm內部編譯之後,“

用+進行字符串連接”也是用StringBuffer實現的。

String str = "I am " + "Lingo!";

String str = new StringBuffer("I am ").append("Lingo!").toString();

上邊兩個是等價的。

StringBuffer類還提供了許多便利的方法,對字符串進行操作

public void reverse()

反轉字符串

public void append(...)

在字符串最後添加信息

public void insert(int start,...)

在索引位置插入信息

public void delete(int start,int end)

刪除指定范圍的內容

最後談一談split與replaceAll方法

public String[] split(String regex)

根據分隔符,把字符串切割成字符串數組

public String replace(String regex,String str)

把字符串中所有與regex匹配的部分都替換成str

regex代表“正則表達式”,如果你並不清楚它的原理,很可能會出現問題。

"1,3,4".split(",")返回的結果是{"1","3","4"}這三個字符串組成的數組

"1|3|4".split("|")返回的結果卻是{"1","|","3","|","4"}五個字符串組成的數組

這個問題的原因是由於在“正則表達式”中,“|”是一個有特殊含義的字符,表示“或”,直接使用split("|")就會把每個字符分開了。如果希望使用"|"作為分隔符,就需要使用轉義字符。

"1|3|4".split("\\|")返回的結果就是{"1","3","4"}三個字符串組成的數組了

“\|”是正則表達式中代表"|"的專一字符,但因為在String中“\”不能單獨出現,還需要進行一次轉義,就變成了“\\|”這種形式。

replaceAll(String regex,String str)也是這種情況。


 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved