我有以下代码 -
if (aa[0].equals("add")) {
if (aa[1].equals("s")&aa[3].equals("s")) {
A= Double.parseDouble (UISAVE[Integer.parseInt(aa[2])]);
B= Double.parseDouble (UISAVE[Integer.parseInt(aa[4])]);
}
if (aa[1].equals("s")&!aa[3].equals("s")) {
A= Double.parseDouble (UISAVE[Integer.parseInt(aa[2])]);
if (aa[3].equals(null)) {
aa[3]="0";
}
B= Double.parseDouble (aa[3]);
}
if (!aa[1].equals("s")) {
A= Double.parseDouble (aa[2]);
B= Double.parseDouble (aa[3]);
}
out[count]=Double.toString(A+B);
read(in, out, UISAVE);
}
我收到此错误 -
线程“main”java.lang.NullPointerException中的异常 在CMDL.shizzle.april2014.Write.read(Write.java:25)
现在,因为它说错误显然是一个if声明...... if(aa [1] .equals(“s”(& aa [3] .equals(“s”)){ 我已经尝试了大部分能做的事情,但还没有找到解决方案。
谢谢,如果你能提供帮助。
答案 0 :(得分:0)
按如下方式更新您的if语句:
if (aa[0].equals("add")) {
if ((aa[1].equals("s")) && (aa[3].equals("s"))) {
A= Double.parseDouble (UISAVE[Integer.parseInt(aa[2])]);
B= Double.parseDouble (UISAVE[Integer.parseInt(aa[4])]);
}
if ((aa[1].equals("s")) && (!aa[3].equals("s"))) {
A= Double.parseDouble (UISAVE[Integer.parseInt(aa[2])]);
if (aa[3].equals(null)) {
aa[3]="0";
}
B= Double.parseDouble (aa[3]);
}
if (!aa[1].equals("s")) {
A= Double.parseDouble (aa[2]);
B= Double.parseDouble (aa[3]);
}
out[count]=Double.toString(A+B);
read(in, out, UISAVE);
}
问题是您目前正在执行按位 &
,因此您需要更新它以使用条件 - 和 &&
代替
此外,在访问类似的数组索引之前,您可能需要检查数组中是否有足够的元素...
if (aa.length >= 3)
{
...
}