【发布时间】:2025-11-28 14:35:02
【问题描述】:
我的程序正在读取一个文本文件并根据该文本执行操作。但是文本的第一行是有问题的。显然它以“”开头。这弄乱了我的startsWith() 支票。
为了理解我使用此代码的问题:
System.out.println(thisLine
+ " -- First char : (" + thisLine.charAt(0)
+ ") - starts with ! : "
+ thisLine.startsWith("!"));
String thisLine 是文本文件的第一行。
它将这个写入控制台:
! use ! to add comments. Lines starting with ! are not read. -- First char : () - starts with ! : false
为什么会发生这种情况,我该如何解决?我希望它意识到该行以“!”开头不是“”
【问题讨论】:
-
charAt(0)不能返回“空字符串”或任何字符串。你从System.out.println( (int)thisLine.charAt(0) )得到什么? -
为什么不直接签入调试第一个字符?
-
@HannoBinder 我得到
65279 -
行的第一个字符可能是不可读的控制字符。尝试用“?”替换您的控制字符是字符串 firstLine。
my_string.replaceAll("\\p{C}", "?"); -
65279 是一个零宽度的空格字符,因此它看起来就像一个空字符串。见*.com/questions/9691771/…