所以我要做的是查看文本文件中字符串是否以#开头。
但是,当我将charAt(0)
与#
进行比较时,会出现错误。
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.lang.String.charAt(Unknown Source)
at StringTranslator.main(StringTranslator.java:63)
代码本身看起来像这样(做所有比较的部分)
String line;
line = br.readLine())
if(line.charAt(0) == '#')
{
// this is a comment line ignore it
writer.println(line);
}
有人建议如何得出结论并使其识别#
符号吗?先感谢您!
注意:我同时在记事本中写入文件和代码中读取文件时都使用UTF-8 encoding
!
答案 0 :(得分:4)
答案 1 :(得分:0)
崩溃与#
无关。您正在尝试评估空字符串中的第一个字符。访问字符串之前,应先验证字符串是否为空:
if (line.length() > 0 && line.charAt(0) == '#')
答案 2 :(得分:0)
错误“字符串索引超出范围:0”表示您的字符串不包含任何字符,即空字符串。
答案 3 :(得分:0)
您需要检查字符串是否为空或不为null,然后检查索引0处的字符是什么
if (!StringUtils.isEmpty(line) && line.startsWith("#")) {
// do something
}