Java - 字符串替换精确单词

2022-09-01 03:31:51
String x = "axe pickaxe";
x = x.replace("axe", "sword");
System.out.print(x);

通过此代码,我试图将确切的单词替换为.但是,如果我运行它,它会打印,而我只想打印,因为它包含它,这是一个不同的词。我该如何解决这个问题?谢谢axeswordsword pickswordsword pickaxepickaxeaxe


答案 1

使用具有单词边界的正则表达式:\b

String s = "axe pickaxe";
System.out.println(s.replaceAll("\\baxe\\b", "sword"));

必须对边界符号的反斜杠进行转义,因此需要双反斜杠。


答案 2

在要替换的单词之前和之后包括单词边界。

String x = "axe pickaxe axe";
x = x.replaceAll("\\baxe\\b", "sword");
System.out.print(x);

编辑输出

sword pickaxe sword