《Thinkinginjava》第13章 字串

2021-07-14 07:03:08 字數 1262 閱讀 1020

字串操作是計算機程式設計中最常見的行為

string物件是不可變的。string類中那些看起來會修改string的方法,實際上都是建立了乙個全新的string物件,以包含修改後的字串的內容。而最初的string物件根本沒有改變。

public

class

immutable

public

static

void

main(string args)

}

在以上**中,把s傳遞給方法upcase()時,實際傳遞的是引用的乙個拷貝。其實,每當把string物件作為方法的引數時,都會複製乙份引用,而該引用所指向的物件其實一直待在單一的物理位置上從未動過。

實際上,當upcase()方法結束時,區域性變數s就消失了,upcase()返回的引用已經指向了乙個新物件,而原本的d則還在原地。

正規表示式中,括號有將表示式分組的效果,而豎直線|則表示或操作:

(-|\\+)?表示字串的起始字元可能是乙個-或乙個+,或者二者都沒有,因為後面跟著修飾符,因為+在正規表示式中有著特殊的意義,所以必須使用\\將它轉義,使它成為表示式中的乙個普通字元。

13.2.1 量詞

量詞描述了乙個模式吸收輸入文字的方式:

貪婪型勉強型占有型

如何匹配

x?x??

x?+乙個或0個x

x*x*?

x*+0個或多個x

x+x+?

x++乙個或多個***?

x+恰好n次***?

x+至少n次***?

x+x至少n次,且不超過m次

表示式x通常要用括號括起來,使得正規表示式能按我們的期望去執行。如abc+(abc)+的執行效果是不一樣的。

正則中的組(group)使用括號劃分的正規表示式,可以根據組的編號來引用某個組,組號為0表示整個表示式,組號1表示被第一對括號括起來的組,以此類推,如在表示式:a(b(c))d中有三個組:組0是abcd,組1是bc,組2是c

異常使用 ThinkingInJava

1.在恰當的級別處理問題。在知道該如何處理的情況下才捕獲異常 2.解決問題並且重新呼叫產生異常的方法。3.進行少許修補,然後繞過異常發生的地方繼續執行。4.用別的資料進行計算,以代替方法預計會返回的值。5.把當前執行環境下能做的事情盡量做完,然後把相同的異常重拋到更高層。6.把當前執行環境下能做的事...

Thinking in java 學習筆記(二)

5.4 類訪問 對於類的訪問只有兩種 友好 沒有修飾符,包內可見 和public 5.6 內部類可以相互訪問protected修飾的方法和資料,private修飾的方法和資料不能訪問,友好 修飾的方法和資料可以相互訪問。protected 它本身是私有的,但可由從這個類繼承的任何東西或者同乙個包內的...

4 ThinkingInJava學習筆記

今天的學習筆記,一天一記 1.建構函式只能在構造器中呼叫,而且只能呼叫最多乙個建構函式。2.如果乙個類沒有實現構造器,那麼就有乙個預設構造器 無參 如果實現了乙個構造器之後,必須有乙個無參構造器。3.finalize 函式釋放資源不靠譜,對於占用的一些系統資源比如檔案控制代碼等,最好還是自己實現乙個...