用4个空格替换java文件中的Tab字符?

时间:2014-12-03 15:17:33

标签: java regex replace

我在这里搜索了一下,似乎没有关于替换制表符的主题,我想知道是否有人可以向我推荐任何简单的方法来替换4x'space'字符的制表符5,000个文件!这些文件是SVN服务器上的.java文件。

我可以想一些使用java(我最熟悉的语言)阅读文件并替换这种方式的方法,但我相信这可能是一种更简单的方法!

6 个答案:

答案 0 :(得分:1)

从概念上讲,没有比打开文件,搜索标签更简单的方法了 并根据需要用4个空格字符替换它们中的每一个。你好吗? 做到这一点:这完全取决于你。

答案 1 :(得分:1)

当然可以。但是你需要知道这些文件的编码。

使用shell的快速​​解决方案,前提是这是一个Unix系统(如果是Windows,那么,安装cygwin):

find thedir -type f -exec perl -pi -e 's,\t,    ,g' {} \;

完成。

使用Java,我希望您使用的是Java 7+。如果是,这很容易:使用Files.walkFileTree(),例如将所有常规文件收集到List中,当您拥有该文件时,对列表中的每个文件执行替换。不要在FileVisitor本身执行此操作,您可能会获得DirectoryIteratorException

可以提供帮助的链接:


此外,非常重要的是,请勿在线修改文件。这不行。创建一个临时文件,在其中写入新内容,然后重命名为原始文件。

答案 2 :(得分:0)

如果您熟悉Java 7,则会大大改进NIO包。从目录中读取/写入和访问文件变得非常容易。你应该试一试。

答案 3 :(得分:0)

在Eclipse中,您可以立即重新格式化所有项目文件。右键单击您的根包,然后转到Source - >格式。

答案 4 :(得分:0)

使用:

String fileContent = new Scanner(new File("file.txt")).useDelimiter("\\Z").next();

然后:  String newFileContent = fileContent.replaceAll("\t", " ");

答案 5 :(得分:-1)

试试这个:

inputString = inputString.replaceAll("\t", "    ")