正如我試圖做到以下幾點:Java String.replace() - 替換的不僅僅是我指定的子字符串嗎?
給定一個字符串,如果第一個或最後一個字符是「X」,返回字符串沒有這些「X」字符,否則返回字符串不變。
我的代碼:
public String withoutX(String str) {
if (str.startsWith("x")) {
str = str.replace(str.substring(0, 1), "");
}
if (str.endsWith("x")) {
str = str.replace(str.substring(str.length()-1), "");
}
return str;
}
此代碼替換所有x
字符字符串中,而不是僅僅在第一和最後一個。爲什麼會發生這種情況,那麼解決問題的好方法是什麼?
之所以出現這種情況的子字符串兩側是'海峽.replace(str.substring(0,1),「」);'reduce to'str.replace(「x」,「」);'這意味着'用''替換每個'x'。在執行'replace'時,第一個參數只是一個字符串「x」;它沒有任何有關該字符串來自哪裏的信息。 – khelwood 2015-04-01 12:53:11