我的部分工作是创建一个charAt()
方法,该方法将返回指定索引处的char值。如果索引无效,则返回索引为零的字符。
这是我到目前为止所记录的,请记住,我的任务明确指出我不能使用Java的现有字符串方法。
public char charAt(int index) {
char a;
if (index < 0 || index > 25)
a = list[0];
else
a = list[index];
return a;
}
每当我调用方法NullPointerException
时,我都会收到charAt
错误。你推荐的是否有任何更正或指示?或者问题太模糊了?
答案 0 :(得分:0)
您应该考虑您使用的实际数据,而不是使用“魔术数字”进行边界检查:
if (list.length == 0) {
//error, no data
}
char back = list[0];
if (index >= 0 && index < data.length) {
back = list[index];
}
return back;
另一方面,正如Juned在评论中指出的那样,如果您有空值并尝试取消引用它们(通过.
或[]
),您将获得NullPointerException
。
所以一些可能的原因是:
list
为空charAt
for为null,例如myData
myData.charAt(42)
为空