在Intellij IDEA中将多个字符串提取为常量

时间:2017-02-03 10:52:54

标签: java intellij-idea refactoring

在我的代码中,以下结构中出现了很多字符串:

map.put("string_1", value_1);
map.put("string_2", value_2);
// etc.

我想将字符串键提取为常量。但是,逐一完成此操作将需要永远......那么,有没有更好的方法来实现这一目标?

2 个答案:

答案 0 :(得分:1)

选择字符串并使用Ctrl + Alt + C.所有字符串都将替换为常量。

答案 1 :(得分:-1)

在Intellij中不知道,但如果你的线条真的如此简单,你可以用一点命令行来完成:

grep map.put YourClass.java | awk -F\" '{print "public static final String " $2 " = \"" $2 "\";"}'

获取字符串声明:

public static final String string_1 = "string_1";
public static final String string_2 = "string_2";

然后

grep map.put YourClass.java | awk -F\" '{print $1 $2 $3}'

替换map.put行。

map.put(string_1, value_1);
map.put(string_2, value_2);

从命令行复制并粘贴到您的文件中;或使用文本编辑器,让你内联(例如在Vim, shift + V 中选择行,然后 并输入来自上面的awk命令。)