Java String.replace() - 替换的不仅仅是我指定的子字符串?

标签 java string replace startswith ends-with

根据 this CodingBat problem我正在尝试执行以下操作:

Given a string, if the first or last chars are 'x', return the string without those 'x' chars, and otherwise return the string unchanged.

我的代码:

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 字符,而不仅仅是第一个和最后一个。为什么会发生这种情况,有什么好的解决方法?

最佳答案

您可以使用 string.replaceAll 函数。

string.replaceAll("^x|x$", "");

以上代码将替换开头或结尾处的x。如果开头或结尾都没有x,则返回原字符串不变。

关于Java String.replace() - 替换的不仅仅是我指定的子字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29391088/

相关文章:

在 C 中比较字符串数组

string - 字符串类型的 Google BigQuery 替换函数

python - pandas.DataFrame. 替换为通配符

Java 远程客户端 GUI

java - 如何访问 <display :table tag similar to varStatus in <c:forEach 中的索引变量

java - 如何访问DRF服务器端的请求主体模型字段?

c# - 如何替换 .NET 中字符串的*第一个实例*?

Java 二进制兼容性 - RFC 关于使用 invokevirtual 语义的协变返回类型的建议解决方案

我可以将 string 和 int 值压入堆栈吗?

c++ - 如何将可变数量的参数传递给构造函数?