gpt4 book ai didi

java - IntelliJ 建议 'replace()' 可以替换为已编译的 java.util.regex.Pattern 构造

转载 作者:行者123 更新时间:2023-11-29 08:31:26 25 4
gpt4 key购买 nike

当我有如下代码时,会触发一个特定的 IntelliJ IDEA 检查:

string1 = string2.replace(string3, string4);

检查说:

'replace()' could be replaced by compiled java.util.regex.Pattern construct.

然后提议为我重构代码,这导致我使用常量文字模式。

我主要针对动态创建正则表达式的情况启用此检查。如果我遵循 IntelliJ 的建议,它有时可以提高性能。但在 String.replace() 的情况下,参数不是正则表达式。在这种情况下遵循 IntelliJ 的建议是否真的不会带来任何性能提升,而只会损害可读性?

是否可以为 String.replace() 关闭它,但为 String.replaceAll()String.replaceFirst()< 保持打开状态?我看不到这样的选项。

最佳答案

String.replace(String, String) 的实现1 只是委托(delegate)给 Pattern.compile(...).matcher(...) .replaceAll(...)。所以我无法想象在用户代码中使用显式 Patternless performance 的情况(事实上,在很多情况下它很可能最终 more 性能)。当然,可读性是一个不同的问题!

我不确定是否可以配置 IntelliJ 检查,但你可以 suppress it用于单个语句、方法或类。


<子>1。至少在 Oracle 的 JDK8 中是这样。

关于java - IntelliJ 建议 'replace()' 可以替换为已编译的 java.util.regex.Pattern 构造,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47832395/

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