当前位置:  开发笔记 > 编程语言 > 正文

如何通过Intellij的查找功能替换整行代码?

如何解决《如何通过Intellij的查找功能替换整行代码?》经验,为你挑选了2个好方法。

我试图找到一种有效的方法,通过项目中的多个文件和类从我的源代码中删除所有打印语句.

到目前为止,我发现您可以使用Ctrl + Shift + F在包含System.out.println和Ctrl + Shift + R的所有代码中查找用其他内容替换该代码(或者在我的情况下没有任何内容)但我还没有能够找到替换ENTIRE线的方法,并且只能替换简单的System.out.println线的部分

有一个简单的方法来获得的IntelliJ通过线的末端选择,这样我就不需要进入源代码在每提,并手动删除它?我在前一个线程中看到尝试System.out.println(*); 但这对我不起作用.



1> Bohemian..:

使用正则表达式替换换行符.

crtlshiftr,然后检查"正则表达式"

Text to find: .*System\.out\.println.*[\r\n]+
Replace with: 

.*将不会匹配换行符,但表达式[\r\n](在所有Os上).



2> 小智..:

解:

您正在寻找的叫做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

推荐阅读
mobiledu2402851377
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有