正确使用String lastIndexOf

时间:2016-10-02 17:45:23

标签: java

我的String str ="12,123 123!abc123.abc"字符串包含,.!个分隔符,我想删除最后一个123.如果我使用StringBuffer str1c = new StringBuffer(str)并使用int last = str1c.lastIndexOf("123"),我将获得最后= 14但这是错误的,因为想要得到清晰的指数" 123",没有附近的任何字母。我想制作str1c ="12,123 !abc123.abc"

1 个答案:

答案 0 :(得分:1)

您需要使用正则表达式,因为您只需要替换最后一个匹配项,您需要使用StringBuilder#reverse()撤消所有内容并使用反向正则表达式所以我们使用\b123\b而不是\b321\b,所以您的最终代码将是:

String result = new StringBuilder(
    new StringBuilder(str).reverse().toString().replaceFirst("\\b321\\b", "")
).reverse().toString();
System.out.println(result);

<强>输出:

12,123 !abc123.abc
相关问题