Java 将选项卡替换为空白

Java 将选项卡替换为空白,java,tabs,Java,Tabs,我试着运行这个,但是它没有用一个空格替换标签。有什么解决办法吗 选项卡不是三个空格。这是通过转义获得的特殊字符,特别是final String remove=“\t”和 final String remove = " " // tab is 3 spaces while (lineOfText != null) { if (lineOfText.contains(remove)) { lineOfText = " ";

我试着运行这个,但是它没有用一个空格替换标签。有什么解决办法吗

选项卡不是三个空格。这是通过转义获得的特殊字符,特别是
final String remove=“\t”

final String remove = "   " // tab is 3 spaces

while (lineOfText != null)
   {
       if (lineOfText.contains(remove))
       {
           lineOfText = " ";
        }
       outputFile.println(lineOfText);
       lineOfText = inputFile.readLine();
   }
或者删除
(因为
replaceAll
不需要它)如


您可以简单地使用此正则表达式将字符串中的任何类型的转义(包括制表符、换行符、空格等)替换为所需的转义:

lineOfText = lineOfText.replaceAll(remove, " ");

在本例中,在名为lineOfText的字符串中,我们已将所有转义替换为空格。

如果不使用正则表达式,请使用
replace()
。谢谢!Shmosel,什么是正则表达式?@ChosenForWorlds正则表达式是正则表达式。这是一种表示字符模式的通用方法,无需特别列出所有实际的字符组合。@shmosel为什么要使用replace()而不是replaceAll()@velocity它比正则表达式替换更简单,也可能更有效。您的
remove
变量是3个空格,而不是制表符。选项卡类似于
“\t”
。此外,指令
lineOfText=“”
正在用一个空格替换
lineOfText
中的整个字符串。例如,用3个连续的空格替换3个连续的空格,因此lineOfText.replaceAll(“\\s+”,”);更符合op的利益
lineOfText = lineOfText.replaceAll(remove, " ");
lineOfText.replaceAll("\\s", " ");