《thinking in java》學習筆記13

字符串
不可變String
  • String是不可變的,每個看似修改String值得方法實際上都是創建了一個新的String對象
  • 當把String對象作爲方法的參數時都會複製一份引用

重載“+”與StringBuilder
  • “+”可以用來連接String
  • 編譯器會自動使用StringBuilder,但是顯式的創建StringBuilder可以預先爲其指定大小,避免多次重新分配緩存
  • StringBuilder更快,StringBuffer是線程安全的,但是開銷更大

無意識的遞歸
  • 打印內存對象的地址應該調用Object.toString()

String上的操作
《thinking <wbr>in <wbr>java》學習筆記13


格式化輸出
  • format方法模仿c的printf(),format()和printf()是等價的
  • 所有新的格式化功能由java.util.Formatter類處理
  • 格式化說明符%[argument_index$][flags][width][.precision]conversion,分別表示參數在參數列表中的位置,修改輸出格式的字符集,最小尺寸,最大尺寸,類型。
  • precision用於字符表示最大長度。浮點數比哦啊是小數點後位數,默認爲六位,多則舍入,少則補零。整數拋出異常
  • 默認情況下是右對齊,可以添加“-”標誌改變對齊方向
  • 類型:十進制整數d unicode字符c boolean值b 字符串s 十進制浮點數f 科學計數浮點數e 十六進制整數x 十六進制散列碼h 百分號%
  • String.format()是一個靜態方法,返回一個String對象

掃描輸入
  • Scanner構造器可以接受任何類型的輸入對象
  • 普通的next方法返回下一個String
  • 默認情況下根據空白字符對輸入進行分詞,但是可以用正則表達式指定自己的定界符
  • 可以使用自定義的正則表達式進行掃描,當next配合正則表達式使用時,將找到下一個匹配該模式的輸入部分,調用match方法可以獲得匹配結果。
  • 它僅針對下一個輸入分詞進行匹配,如果正則表達式中有定界符,那麼不可能匹配成功

發佈了74 篇原創文章 · 獲贊 5 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章