以字符串格式重命名变量

时间:2017-07-20 13:40:48

标签: java

智能IDE的一个功能是重命名变量。作为Eclipse中的一个示例,当您选择一个变量并点击alt + shift + r时,您可以在当前块中重命名它的所有实例。

编写一个函数,该函数给出了函数源代码和变量名。然后将给定变量重命名为给定的新名称。但是当我替换变量时,例如

 String str = "void aMethod(int a, int b) {     System.out.println(a + b); }" 

    static void j3wRenameVariable(String sourceCode, String var2Rename, String newName) {

      StringBuffer source = new StringBuffer(sourceCode);
        char var2 = var2Rename.charAt(0);
        String a="";

        for (int i = 0; i < source.length(); i++) {
            if(source.charAt(i) == var2){
             a = source.replace(i, i + var2Rename.length(), newName).toString();
            }
        }
        System.out.println(a);


}

此程序将函数名称更改为swill。

1 个答案:

答案 0 :(得分:1)

您需要隔离您的变量。注册表怎么样?

return source.replaceAll("(\\W)(" + var2Rename + ")(\\W)", "$1" + newName + "$3");

解释。 \\W将检查非字母字符,例如变量表达式的边界。我们想要在变量的两边都有一个边界,然后要替换我们需要确保包含匹配的边界字符,因此&#34; $ 1&#34;和&#34; $ 3&#34;。< / p>