我的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"
答案 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