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

Java 字串 replace 方法常見錯誤:變數未定義

     編輯:程式設計綜合問答

錯誤代碼

String k = "I am student";
String s3 = k.replace(m, s); // 編譯錯誤:m cannot be resolved to a variable

原因分析

replace 方法簽名為 replace(CharSequence target, CharSequence replacement),參數必須是字串字面值或已宣告的字串變數。代碼中 m、s 皆未宣告,編譯器視為未定義變數。

正確寫法

// 1. 直接使用字串字面值 (推薦)
String s3 = k.replace("am", "was"); // "I was student"

// 2. 使用已宣告變數
String target = "am";
String replacement = "was";
String s3 = k.replace(target, replacement);

// 3. 正則替換 (replaceAll)
String s4 = k.replaceAll("\\s+", "-"); // "I-am-student"

相關方法對照

方法參數是否正則替換範圍
replace(char, char)字元否所有匹配
replace(CharSequence, CharSequence)字串否所有匹配
replaceFirst(String regex, String repl)正則是首個匹配
replaceAll(String regex, String repl)正則是所有匹配

注意事項

  • String 為不可變物件,replace 回傳新字串,原字串 k 不變。
  • 正則特殊字元 (.$^{[()|*+?\\) 需雙重轉義:"\\." 代表字面點號。
  • Java 9+ 新增 String.replace(CharSequence, CharSequence) 重載,效能優於正則版。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved