Java 在Intellij IDEA中提取多个字符串到常量

Java 在Intellij IDEA中提取多个字符串到常量,java,intellij-idea,refactoring,Java,Intellij Idea,Refactoring,在我的代码中,有许多字符串出现在以下结构中: map.put("string_1", value_1); map.put("string_2", value_2); // etc. 我想提取一个常量的字符串键。然而,一个接一个地做这件事会花费很长时间……那么,有没有更好的方法来实现这一点呢?在Intellij中不知道,但是如果你的行真的那么简单,你可以用一点命令行fu来做: grep map.put YourClass.java | awk -F\" '{print "public stati

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

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

我想提取一个常量的字符串键。然而,一个接一个地做这件事会花费很长时间……那么,有没有更好的方法来实现这一点呢?

在Intellij中不知道,但是如果你的行真的那么简单,你可以用一点命令行fu来做:

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";
然后

要替换
映射,请放置

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

从命令行复制并粘贴到文件中;或者使用一个文本编辑器,它允许您内联操作(例如,在Vim中,shift+V选择行,然后:!并从上面输入awk命令)。

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

您可以在不离开IDE的情况下执行此操作(任何IDE:IntelliJ、Eclipse、Netbeans等)使用正则表达式进行搜索/替换。当然可以。我真傻,竟然不去想那件事;)只需使用ctrl+alt+c
map.put(string_1, value_1);
map.put(string_2, value_2);