- String是不可變的,每個看似修改String值得方法實際上都是創建了一個新的String對象
- 當把String對象作爲方法的參數時都會複製一份引用
- “+”可以用來連接String
- 編譯器會自動使用StringBuilder,但是顯式的創建StringBuilder可以預先爲其指定大小,避免多次重新分配緩存
- StringBuilder更快,StringBuffer是線程安全的,但是開銷更大
- 打印內存對象的地址應該調用Object.toString()
- 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方法可以獲得匹配結果。
- 它僅針對下一個輸入分詞進行匹配,如果正則表達式中有定界符,那麼不可能匹配成功