首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> J2SE

J2SE 核心技術:String 類別進階應用與效能優化(二)

     編輯:J2SE

常用字串操作方法

  • concat(String str):回傳當前字串與 str 連接後的新字串。可簡寫為 str1 + str2,效果相同。
  • startsWith(String str):判斷是否以 str 開頭。
  • endsWith(String str):判斷是否以 str 結尾。

字串連接的效能陷阱與 StringBuffer

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

此過程實際產生三個 String 物件:"I am "、"Lingo!"、連接後的新物件。使用 + 連接字串極耗資源,JVM 內部實際以 StringBuffer 實現:

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

上述兩種寫法等價。StringBuffer 內容可修改,提供豐富操作方法:

  • reverse():反轉字串
  • append(...):尾端附加
  • insert(int start, ...):指定位置插入
  • delete(int start, int end):刪除指定範圍

split 與 replaceAll 的正則表達式陷阱

  • split(String regex):依分隔符切割成字串陣列
  • replace(String regex, String str):將符合 regex 的部分替換為 str

regex 代表正則表達式,不熟悉易出錯。例:

"1,3,4".split(",")   // 回傳 {"1","3","4"}
"1|3|4".split("|")   // 回傳 {"1","|","3","|","4"} 錯誤!

| 在正則中為「或」運算符,需轉義:

"1|3|4".split("\\|") // 正確回傳 {"1","3","4"}

因 Java 字串中 \ 需雙重轉義,故寫為 \\|。replaceAll 同理。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved