Efi*_*fie 4 java replace intellij-idea
我试图找到一种有效的方法,通过项目中的多个文件和类从我的源代码中删除所有打印语句.
到目前为止,我发现您可以使用Ctrl + Shift + F在包含System.out.println和Ctrl + Shift + R的所有代码中查找用其他内容替换该代码(或者在我的情况下没有任何内容)但我还没有能够找到替换ENTIRE线的方法,并且只能替换简单的System.out.println线的部分
有一个简单的方法来获得的IntelliJ通过线的末端选择,这样我就不需要进入源代码在每提,并手动删除它?我在前一个线程中看到尝试System.out.println(*); 但这对我不起作用.
Boh*_*ian 10
使用正则表达式替换换行符.
crtlshiftr,然后检查"正则表达式"
Text to find: .*System\.out\.println.*[\r\n]+
Replace with: <leave blank>
Run Code Online (Sandbox Code Playgroud)
.*将不会匹配换行符,但表达式[\r\n](在所有Os上).
小智 5
您正在寻找的叫做
Structural Search/Replace。它没有很好的文档记录,但是一旦完全完成它,它就会非常强大。
Existing Templates您可能可以修改和学习其中的一些示例,下面的示例将满足您现在的要求。
进入菜单:,Edit -> Find -> Replace Structurally然后使用以下命令Search Template。
System.out.println($EXPRESSION$);
Run Code Online (Sandbox Code Playgroud)
检查Case Sensitive并制作File Type=Java Source
将Scope搜索的设置Project Files为所有内容。
如果您只想删除所有内容,则只需确保该Replace Template字段为空白即可。
你对此有何评论他们都出来了Replace Template的//System.out.println($EXPRESSION$);或/* System.out.println($EXPRESSION$); */
使用将该语句
Structural Search/Replace添加private static final Logger L = LoggingFactory($Class$.class);到所有类中System.out.println()。
然后更换所有System.out.println($EXPRESSION$);与L.info($EXPRESSION$);
您甚至可以执行以下复杂的操作:
这只是一个示例想法,catch只需要System.out.println($EXPRESSION$)更复杂的功能块来获取其他表达式并将其保留,这对于读者来说是一种练习。
try {
$TryStatement$;
} catch($ExceptionType$ $ExceptionRef$) {
System.out.println($EXPRESSION$);
}
Run Code Online (Sandbox Code Playgroud)
与
try {
$TryStatement$;
} catch($ExceptionType$ $ExceptionRef$) {
L.error($EXPRESSION$);
}
Run Code Online (Sandbox Code Playgroud)
始终在 所有内容中使用
Logger而不是。即使在用于实验的类中,它们最终还是最终会在生产代码中出现!System.out.println()scratch
| 归档时间: |
|
| 查看次数: |
1959 次 |
| 最近记录: |