我使用此代码从文件中读取一行文字:如何识别文件中的' t'?
BufferedReader br = new BufferedReader(new FileReader("myFile.txt"));
String line = br.readLine();
如果行包含标签(\ t),则该字符无法正确读取。它只是表现为一个空白的空间。如何确定当前正在读取的文本行中是否包含制表符?
我使用此代码从文件中读取一行文字:如何识别文件中的' t'?
BufferedReader br = new BufferedReader(new FileReader("myFile.txt"));
String line = br.readLine();
如果行包含标签(\ t),则该字符无法正确读取。它只是表现为一个空白的空间。如何确定当前正在读取的文本行中是否包含制表符?
文本文件包含\ t字符,但是当我输出在读字符串中的字符,它显示为空,即\ t没有被读取。
我的第一反应是这是显示输出的任何错误。尝试将输出重定向到文件并使用您知道的工具查看它,如果它们在那里,将显示任何制表符。 (例如,如果您使用的是UNIX/Linux,则为od
实用程序。)并检查输入文件。
如何确定当前正在读取的文本行中是否包含制表符?
for (char ch : line.toCharArray()) {
if (ch == '\t') {
System.err.println("BINGO!!");
}
}
@oldrinb - 谢谢。 (我不应该依赖我的记忆......) –
如果您确定它是一个空白空间,通过打印出字符串,您将看到您正在使用的终端对制表符的解释。大多数终端驱动程序认为制表符(ASCII 9)意思是“跳转到8的倍数”,模拟旧打字机的行为。
请考虑查看字符串中每个字符的charAt(...)
,然后查找值9。
作为气垫船全部鳗鱼刚才说,你正在读一整行,而不是char字符。
不管怎么说,你可以通过一些检查,如果它是一个标签空白字符一样,如果(String.charAt(pos) == '\t') { do stuff with it }
文本没有被读取成炭炭,而是由行而行,所以'“我怎么能确定一个制表符正在读取当前字符?”'没有任何意义我。您当然可以使用String方法(如contains(...)或indexOf(...))查看某行是否包含某个char或String。 –
@Hovercraft全部的鳗鱼THANKs,ive更新了我的问题。文本文件包含\ t字符,但是当我在读取字符串中输出字符时,它显示为空,即\ t未被读取。 –