Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用4个空格替换java文件中的制表符?_Java_Regex_Replace - Fatal编程技术网

用4个空格替换java文件中的制表符?

用4个空格替换java文件中的制表符?,java,regex,replace,Java,Regex,Replace,我在这里搜索过,似乎没有关于替换制表符的主题,我想知道是否有人可以向我推荐任何简单的方法,在5000多个文件中用4个“空格”字符替换制表符!这些文件是SVN服务器上的.java文件 我可以想出一些方法使用java(我最熟悉的语言)读取文件并以这种方式替换,但我相信可能有一种更简单的方法可以做到这一点 从概念上讲,除了打开文件、搜索选项卡,没有更简单的方法, 并根据需要将每个字符替换为4个空格字符。您好 准确地做:这完全取决于你 如果您熟悉java7,它大大改进了NIO包。从目录中读取/写入和访问

我在这里搜索过,似乎没有关于替换制表符的主题,我想知道是否有人可以向我推荐任何简单的方法,在5000多个文件中用4个“空格”字符替换制表符!这些文件是SVN服务器上的
.java
文件


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

从概念上讲,除了打开文件、搜索选项卡,没有更简单的方法,
并根据需要将每个字符替换为4个空格字符。您好

准确地做:这完全取决于你

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

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

尝试以下操作:

inputString = inputString.replaceAll("\t", "    ")
使用:

然后:
String newFileContent=fileContent.replaceAll(“\t”,“”)

当然有可能。但您需要知道这些文件的编码方式

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

完成了

对于Java,我希望您使用的是Java 7+。如果是,这非常简单:使用
文件.walkFileTree()
,将所有常规文件收集到一个
列表中,例如,当您有了该列表时,对列表中的每个文件执行替换。不要在
文件访问者
本身中执行此操作,您可能会得到一个
目录迭代器异常

链接可以帮助:

  • )
  • )
  • )


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

这些文本文件的编码是什么?(java社区99.9%的惯例是使用4个空格作为制表符。从C/C++提交我赞赏java的裁决。所以重新考虑一下米老鼠计数。)一定有Java美容师在附近。这看起来像是来自unix的sed的工作。@JoopEggen抱歉,我一直说5个空格,它是4。@Blitzkr1eg我在旅行中遇到过这个问题,我在Mac上(给定的工作),但是,我敢说,我在unix方面不是很有经验。我是个视窗人!嗯?
find thedir-type f-exec perl-pi-e's、\t、,g'
--done(sh*--如何在反引号中输入多个空格?)@fge这样做基本上不一样吗:打开文件,查找其中的选项卡,替换它们?这就是我的意思:从概念上说,没有其他方法。我不知道为什么有人在这里做-1;使用java.nio.file确实很容易做到……虽然这个答案可能包含有效的信息,但对我来说太宽泛了。这就像只有链接的答案,但没有链接。这看起来更像是评论而不是回答。请提供更多可以解决此问题的信息,建议该软件包中的类/方法,并描述如何使用它们,如“我将使用
文件.walkFileTree()
迭代所有文件,然后……”。您还可以使用Anyedit工具插件,该插件可以仅替换选项卡。这比重新格式化整个文件的侵入性小,这也可能会改变其他事情。
String fileContent = new Scanner(new File("file.txt")).useDelimiter("\\Z").next();
find thedir -type f -exec perl -pi -e 's,\t,    ,g' {} \;