从这个功能代码
String line = "";
int i = 0;
while (line != null) {
line = br.readLine();
checklistList.add(fillList("list", line));
i++;
}
该行看起来像清单(日期).txt,我希望它只是日期。对我来说显而易见的解决方案是
String line = "";
int i = 0;
while (line != null) {
line = br.readLine();
checklistList.add(fillList("list", line.substring(13, 29)));
i++;
}
然而,这会导致错误:
Attempt to invoke virtual method 'java.lang.String java.lang.String.substring(int, int)' on a null object reference
可以采取哪些措施来解决这个问题?如果它有所作为,在Android上运行。
答案 0 :(得分:2)
在尝试将其子串化之前,您必须检查行是否为空。
String line = "";
int i = 0;
while (line != null) {
line = br.readLine();
if (line != null) { // CHeck if line is null or not
checklistList.add(fillList("list", line.substring(13, 29)));
}
i++;
}
注意:我不知道您的代码的任何其他详细信息,但也许您还必须检查该行是否足够长,以便在您指定的位置对其进行子串。
答案 1 :(得分:1)
正如@David所说,你需要检查行是否不是null
这是一种标准方法
String line = "";
int i = 0;
while ((line = br.readLine()) != null) { //set line then check for null
checklistList.add(fillList("list", line.substring(13, 29)));
i++;
}