如何识别文件中的'\ t'?

时间:2012-09-15 23:35:49

标签: java

我正在使用此代码从文件中读取一行文字:

BufferedReader br = new BufferedReader(new FileReader("myFile.txt"));
String line = br.readLine();

如果该行包含制表符:(\ t),则无法正确读取此字符。它只是一个空的空间。如何确定当前正在读取的文本行中是否包含制表符?

3 个答案:

答案 0 :(得分:1)

如果您确定它是一个空白区域,通过打印出该字符串,您将看到正在使用的终端对制表符的解释。大多数终端驱动程序认为制表符(ASCII 9)表示"跳转到8"的倍数的列。模拟旧打字机的行为。

考虑查看字符串中每个字符的charAt(...),然后查找值9。

答案 1 :(得分:1)

  

文本文件包含\ t字符,但是当我输出读取字符串中的字符时,它显示为空,即未读取\ t。

我的第一反应是,这是显示输出的任何错误。尝试将输出重定向到文件并使用您知道将显示任何TAB字符的工具查看它(如果它们在那里)。 (例如,如果您使用的是UNIX / Linux,则为od实用程序。)并检查输入文件。

  

如何确定当前正在读取的文本行中是否包含制表符?

    for (char ch : line.toCharArray()) {
        if (ch == '\t') {
            System.err.println("BINGO!!");
        }
    }

答案 2 :(得分:0)

正如 Hovercraft Full Of Eels 刚刚说的那样,你正在阅读整行,而不是char的char。

无论如何,你可以检查它是否是一个tab-whitespace字符,如(String.charAt(pos) == '\t') { do stuff with it }