gpt4 book ai didi

java - 字符串以空字符串 (""开头)

转载 作者:搜寻专家 更新时间:2023-11-01 01:51:11 27 4
gpt4 key购买 nike

我的程序正在读取文本文件并根据文本执行操作。但是文本的第一行是有问题的。显然它以“”开头。这弄乱了我的 startsWith() 检查。

为了理解这个问题,我使用了这段代码:

   System.out.println(thisLine 
+ " -- First char : (" + thisLine.charAt(0)
+ ") - starts with ! : "
+ thisLine.startsWith("!"));

String thisLine 是文本文件中的第一行。

它将此写入控制台:!利用 !添加评论。以 ! 开头的行不读。 - 第一个字符 : () - 以 ! : 假

为什么会发生这种情况,我该如何解决?我想让它意识到该行以“!”开头不是“”

最佳答案

将我和其他人的评论收集到一个答案中供后代使用,您的字符串可能包含不可打印的控制字符。尝试

System.out.println( (int)thisLine.charAt(0) )

打印出他们的数字代码或

my_string.replaceAll("\\p{C}", "?");

用'?'替换控制字符。

System.out.println( (int)thisLine.charAt(0) ) 为您打印了 65279,这将是零宽度空间的 Unicode 代码点, 不是不可打印的,但在输出时实际上是不可见的。 (参见 Why is  appearing in my HTML?)。

从文件中删除多余的空白字符,从字符串中删除所有控制字符(my_string.replaceAll("\\p{C}", "");)或使用@arvind 的在阅读之前回答并修剪字符串 (thisLine = thisLine.trim();),使其在字符串的开头或结尾不包含空格。

编辑:记事本不会显示大多数“特殊”字符。如果您想编辑该文件,请尝试使用十六进制编辑器或更高级版本的记事本,例如 Notepad++。

关于java - 字符串以空字符串 (""开头),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31048732/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com