布尔表达式与gatejava
嗨,我有一个代码,当你输入一个表达式时,它会存储到一个数组中,但我的问题是,当输入表达式像ab+c时,我怎么能把*放在两个变量之间?它表示空值。 这是我的密码:
stack = strexp.toCharArray();
for (int k = 0; k < stack.length; k++) {
if (Character.isLetter(stack[k]) && Character.isLetter(stack[k+1])){
temp[k] = stack[k];
temp[k+1] = '*';
temp[k+2] = stack[k+1];
}
}
# 1 楼答案
有两个问题:
1)NPE-将通过初始化
temp[]
来解决2)在
Character.isLetter(stack[k + 1])
处的ArrayIndexOutOfBoundsException使用此代码可以解决以下两个问题:
# 2 楼答案
您应该会收到一个
ArrayIndexOutOfBounds
异常,因为您会递增k
,直到它等于stack
数组中的最后一个索引,然后尝试访问stack[k+1]
循环表达式必须是
造成
NullPointerException
的原因并不直接可见,但我相信您尚未初始化temp
数组。很可能是因为你不知道它的确切尺寸我会将结果存储在
列表中StringBuilder: