我一直被困在這個Stack問題上幾天了。我得到一件事情,另一件事情打破了,但我差不多完成了!我快成現在的問題是,我得到的計算工作,但是當我嘗試並彈出下一個項目,現在是一個雙,我得到一個錯誤......堆棧推送問題Double和Character
Exception in thread "main" java.lang.NullPointerException at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1008) at java.lang.Double.parseDouble(Double.java:540) at NodeStack.postFix(NodeStack.java:207)
我做了一點研究和調試,似乎當我彈出現在是雙重字符而不是字符的項目時,我得到空指針......這是有道理的。我遇到的問題是如何處理它。這只是正在發生的一小部分。我不確定我能做什麼。
if(ch=='+'){
E one=(E) myStack.pop();
E two=(E) myStack.pop();
String first=numbers.get(one);
String second=numbers.get(two);
double temp=Double.parseDouble(first)+Double.parseDouble(second);
myStack.push(temp);
}
我應該在的地方有添加if/else語句來處理它是否是一個字符或數字,如果是我會怎麼去這樣做的情況下?我希望我對這個問題有足夠的瞭解。
你檢查first'的'價值觀和'秒'? –
我懂了。現在有幾個邏輯錯誤^ – kevorski