java - 尝试替换带有括号的字符串内的内容,java

标签 java

您好,我对 Java 很陌生,我有一个问题,

我正在尝试将字符串“22(S)”替换为“22(I)”,但由于某种原因,首先替换不会替换该字符串。

这是我的代码:

public class tes {

public static void main(String[] args) {

    int y = 22;
    String x = " 22(S)";
    
    x = x.replaceFirst(" " + y + "(S)", " " + y + "(I)");                   

    System.out.println(x);

}

}

虽然我知道我可以执行 x.replaceFirst("S","I") ,但我想了解为什么这仍然用我当前的代码生成 22(S) 。谢谢。

最佳答案

因为()是正则表达式中的分组运算符。你需要在比赛期间逃脱他们。就像,

x = x.replaceFirst(" " + y + "\\(S\\)", " " + y + "(I)");

我明白了

 22(I)

没有其他变化。

关于java - 尝试替换带有括号的字符串内的内容,java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69601030/

相关文章:

java - 从 UNIX 写入 Windows 网络共享

java - 为什么我的内部类确实看到非静态变量?

java - Spring + Thymeleaf 自定义验证展示

java - 微调器不显示所选项目

java - 列出 1 对 N 对 1 关系的内部项目的更好习惯用法?

java - svnkit,列出SVN存储库的所有文件,而不 check out 文件

java - 我可以处理的 Spring 回调

java - Spring Web MVC HttpRequest 无法正常运行

java - 如何查找数组中给定 int 的每个索引?

java - LazyList 的 listview 无法使用新的 arraylist 刷新