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", " ");