我试图找到一种有效的方法,通过项目中的多个文件和类从我的源代码中删除所有打印语句.
到目前为止,我发现您可以使用Ctrl + Shift + F在包含System.out.println和Ctrl + Shift + R的所有代码中查找用其他内容替换该代码(或者在我的情况下没有任何内容)但我还没有能够找到替换ENTIRE线的方法,并且只能替换简单的System.out.println线的部分
有一个简单的方法来获得的IntelliJ通过线的末端选择,这样我就不需要进入源代码在每提,并手动删除它?我在前一个线程中看到尝试System.out.println(*); 但这对我不起作用.
使用正则表达式替换换行符.
crtlshiftr,然后检查"正则表达式"
Text to find: .*System\.out\.println.*[\r\n]+ Replace with:
.*
将不会匹配换行符,但表达式[\r\n]
(在所有Os上).
您正在寻找的叫做
Structural Search/Replace
。它没有很好的文档记录,但是一旦完全完成它,它就会非常强大。
Existing Templates
您可能可以修改和学习其中的一些示例,下面的示例将满足您现在的要求。
进入菜单:,Edit -> Find -> Replace Structurally
然后使用以下命令Search Template
。
System.out.println($EXPRESSION$);
检查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$); }
与
try { $TryStatement$; } catch($ExceptionType$ $ExceptionRef$) { L.error($EXPRESSION$); }
始终在 所有内容中使用
Logger
而不是。即使在用于实验的类中,它们最终还是最终会在生产代码中出现!System.out.println()
scratch