字串操作是計算機程式設計中最常見的行為
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 函式釋放資源不靠譜,對於占用的一些系統資源比如檔案控制代碼等,最好還是自己實現乙個...