我想将字符串“S /”更改为“S /”。只有整个单词,我尝试了Pattern.compile和Matcher.quoteReplacement。我没有找到解决方案。

public static void main(String[] args) {
    String cadena = "Moneda Actual : S/";
    cadena = cadena.replaceAll("\\bS/\\b", "S/.");
    System.out.println(cadena);
}

此代码打印:

Moneda实际:S /

我要打印:

Moneda实际:S /。

因此,如果原始文本为"Moneda Actual : S/.",则算法不能替换为"S/.."

最佳答案

负面评价:

cadena = cadena.replaceAll("\\bS/(?!\\.)", "S/.");

否定的前瞻断言(不消耗)下一个字符不是点。

这也将起作用,然后"S/"出现在字符串的末尾。

-

在斜线之后和点之前没有单词边界。单词边界介于“单词”字符(字母,数字和下划线)和非“单词”字符之间。不在空白和非空白之间。

09-05 21:02