Java 堆栈推送问题和双字符
我已经被困在这个堆栈问题上好几天了。我做了一件事,另一件事坏了,但我几乎完成了!我现在遇到的问题是,我得到了一个计算,但当我尝试弹出下一个项目,这是一个双精度,我得到一个错误 线程“main”java.lang.NullPointerException在sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1008)中出现异常 在java.lang.Double.parseDouble(Double.java:540)中 在NodeStack.postFix(NodeStack.java:207) 我做了一点研究和调试,似乎当我弹出当前项目,现在是一个双精度的,而不是一个字符,我得到了空指针…这是有意义的。我面临的问题是如何处理它。这只是正在发生的事情的一小部分。我不确定我能做什么Java 堆栈推送问题和双字符,java,stack,Java,Stack,我已经被困在这个堆栈问题上好几天了。我做了一件事,另一件事坏了,但我几乎完成了!我现在遇到的问题是,我得到了一个计算,但当我尝试弹出下一个项目,这是一个双精度,我得到一个错误 线程“main”java.lang.NullPointerException在sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1008)中出现异常 在java.lang.Double.parseDouble(Double.java:540
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语句来处理它是字符还是数字,如果是这样的话,我该怎么做呢?我希望我对这个特殊问题已经足够详细了。第一个或第二个字符串变量可能是空的 以下是Double.parseDouble的文档:
您是否检查了
第一个
和第二个
的值?我让它工作了。现在有一些逻辑错误^
public static double parseDouble(String s)
throws NumberFormatException
Throws:
NullPointerException - if the string is null
NumberFormatException - if the string does not contain a parsable double.