【问题标题】:Concatinate string literals using IntelliJ IDEA Structural Replace使用 IntelliJ IDEA Structural Replace 连接字符串文字
【发布时间】:2015-01-12 17:25:51
【问题描述】:

我正在尝试搜索字符串的静态连接并使用 结构搜索替换将它们组合成单个字符串。

例如 我想搜索替换"String1"+"String2"+"String3" 并替换为 "String1String2String3" 。但它不应该替换 cmets 中的字符串。

public class Main {
    public static void main(String[] args) {
        String s =    "String1"+"String2"
                      +"String3";

        System.out.println(CONSTANT);
    }

//    private static final String CONSTANT ="String1"
// +"String2"+"String3"
}

如果我搜索

"$String1$"

导致上述字符串出现 1 次 不过

"$String1$"+"$String2$"

与上面的字符串不匹配

结构搜索替换如何工作? 如何在Replace String 中引用Search string 中的变量

【问题讨论】:

  • 好问题,但在我看来它是不必要的,因为 java 编译器会自行连接这些字符串。您可以编译您的示例并查看反编译的类文件。
  • 谢谢,我知道,这个问题更多的是关于结构搜索替换和理解它是如何工作的,因为没有太多关于这个的文档。

标签: string search replace intellij-idea structural-search


【解决方案1】:

看起来结构搜索目前不完全支持您的用例。您可以使用查询匹配您的字符串:

"$String1$"+"$String2$"+"$String3$"

并替换为:

"$String1$$String2$$String3$"

但这只会找到三个字符串文字的字符串连接。 您可能需要在http://youtrack.jetbrains.com 提交错误报告

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-13
    • 1970-01-01
    • 2011-09-18
    • 2023-03-27
    • 1970-01-01
    • 2022-12-08
    • 1970-01-01
    相关资源
    最近更新 更多