gpt4 book ai didi

java - 替换字符串中最后一次出现的模式的最快方法

转载 作者:行者123 更新时间:2023-11-30 08:16:38 24 4
gpt4 key购买 nike

在查看了有关替换最后一个词的不同问题后,我没有找到涵盖最快方式 的问题。在我的场景中,我想替换句点后字符串的最后一位,或者最后一个单词和之后的所有内容。

为了更好地解释,此方法完全按照我想要的方式替换字符串:(编辑:我根据 Avinash 的响应更改了正则表达式,仍在寻找更快的替代方法,因为正则表达式 replaceall 仍然很慢)

return permission.replaceAll("\\w+(?:\\.\\*)?$", "*");

示例输入 -> 输出

test.test.test -> test.test.*
test.test.* -> test.*

虽然这可行,但我正在寻找一种更快的方法来实现相同的结果。这个方法经常被调用,它出现在我的 cpu 分析结果的顶部。

最佳答案

只是将此作为答案发布,因为它在另一个答案的评论中:

Joop Eggen 的回答:

Thanks for letting me know, One never knows. The regex way: replaceFirst of course; and not to forget for multiple replacements private static final Pattern PATTERN = Pattern,compile("\w+(?:\.\*)?$"); ... s = PATTERN.matcher(s).replaceFirst("*");

证据:http://ideone.com/vsObMZ Pattern 被证明是迄今为止最快的方法,因此这将是公认的答案。

Pattern p = Pattern.compile("\\w+(?:\\.\\*)?$");
return p.matcher(permission).replaceFirst("*");

关于java - 替换字符串中最后一次出现的模式的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28206045/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com