java - 使用 if 条件检查和 ReplaceAll 进行代码优化

标签 java string if-statement replace

我有一个字符串,我必须在其中检查一些 if 条件并执行一些替换操作,如下所示,

for(int i =0; i<10;i++){
    if(name[i].contains("sometext")){
       name[i] = name[i].replaceAll("someregexpattern","replacementtexthere");
    }
}

我可以简单地说,而不是每次使用“if”条件检查“sometext”是否存在,

for(int i =0; i<10;i++){
       name[i] = name[i].replaceAll("someregexpattern","replacementtexthere");
}

无论如何,如果字符串“name”不包含“regexpattern”意味着,它不会替换任何内容。那么,if 条件对于性能有什么意义吗?

提前致谢。

最佳答案

仅当 sometextsomeregexpattern 相同时这才有效。否则,if 条件确实很重要。

假设您的 someregexpattern 确实存在于字符串中,但您的 if 条件评估为 false,在这种情况下,您不是应该做替换。但是如果去掉if语句,就会发生替换,这不太一样。

例如:-帮助您更好地理解。

String testCondition = "dontReplace";
        String myString = "Hi, I'm SO";
        String regex = "SO";
        String replacement = "Not SO";

        if(myString.contains(testCondition)){
            myString = myString.replaceAll(regex, replacement); // stays "Hi, I'm SO"
        }

        myString = myString.replaceAll(regex, replacement); // Becomes "Hi, I'm Not SO"

如您所见,要求不应发生 String 替换,因为条件是 dontReplace,但由于 if 已被删除,替换发生了,尽管它不应该发生。

关于java - 使用 if 条件检查和 ReplaceAll 进行代码优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15634118/

相关文章:

python - If 语句始终打印 (Python)

java - Struts 2 : ui. struts.properties 中的主题更改未得到反射(reflect)

java - 如何在android中将颜色资源设置为墙纸?

java - 从子目录膨胀 FXML

c - typedef string c 赋值给位置

java - 如何按递减顺序循环字符串?

java - 捕获 Control + Space 键盘事件

c++ - 在数组末尾添加一个字符串?

C:只有if语句中的第一个条件有效

c - 为什么循环中的值永远不会大于2?