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

Java String 類核心方法大全:構造器、常用 API、實戰技巧與性能優化指南

     編輯:Java 程式設計入門

構造器速查

構造器說明示例
String(byte[])字節數組解碼(平台默認編碼)new String(new byte[]{97,98}) // "ab"
String(byte[], offset, len)部分字節數組解碼new String(bytes, 3, 2)
String(char[])字符數組構造new String(new char[]{'a','b'})
String(String)複製字符串(極少必要)new String("abc")
String(StringBuffer)StringBuffer 轉 Stringnew String(new StringBuffer("abc"))

高頻實例方法分類速查

查找與比較

  • charAt(int index):單字符訪問;
  • indexOf(int ch / String str [, fromIndex]):首次出現位置;
  • lastIndexOf(...):最後出現位置;
  • startsWith/endsWith(String prefix/suffix [, offset]):前綴/後綴判斷;
  • equals(Object) / equalsIgnoreCase(String):內容比較;
  • compareTo(String) / compareToIgnoreCase(String):字典序比較。

截取與分割

  • substring(int begin [, end]):子串(end 不包含);
  • split(String regex [, limit]):正則分割,返回數組;
  • trim():去首尾空白;strip() (Java 11+) 支援 Unicode 空白。

大小寫與替換

  • toUpperCase() / toLowerCase():區分 Locale 的重載可用;
  • replace(char old, char new) / replace(CharSequence, CharSequence):字面替換;
  • replaceAll/replaceFirst(String regex, String repl):正則替換。

轉換與判斷

  • toCharArray():轉字符數組;
  • getBytes(Charset):編碼為字節數組(建議顯式指定 Charset);
  • isEmpty() / length():長度判斷;
  • contains(CharSequence):包含判斷。

靜態工廠方法

  • valueOf(基本類型/Object/char[]):通用轉字符串,null → "null";
  • copyValueOf(char[]):同 valueOf;
  • format(String, Object...):格式化,底層 Formatter。

實戰最佳實踐

  1. 拼接字符串:循環內用 StringBuilder(單線程)或 StringBuffer(多線程),避免 + 產生大量中間對象;
  2. 常量池複用:字面量自動入池,intern() 手動入池(慎用,Java 7+ 池在堆中,影響 GC);
  3. 正則預編譯:Pattern.compile(regex) 復用,split 內部會編譯,高頻調用提取 Pattern;
  4. 編碼顯式化:getBytes(StandardCharsets.UTF_8),避免平台差異導致亂碼;
  5. 不可變性利用:安全發布、HashMap Key、緩存 Key 等場景直接用 String。

常見面試陷阱

  • s1 == s2 vs s1.equals(s2):前者比較引用,後者比較內容;
  • substring 在 Java 6 共享底層 char[](可能內存洩漏),Java 7+ 複製新數組;
  • "a" + "b" == "ab" 編譯期常量折疊為 true,變量拼接則 false;
  • String s = new String("abc") 創建 1 或 2 個對象?字面量 "abc" 在常量池,new 在堆創建新對象 → 2 個(若常量池已有則 1 個堆對象)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved