Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 堆栈推送问题和双字符_Java_Stack - Fatal编程技术网

Java 堆栈推送问题和双字符

Java 堆栈推送问题和双字符,java,stack,Java,Stack,我已经被困在这个堆栈问题上好几天了。我做了一件事,另一件事坏了,但我几乎完成了!我现在遇到的问题是,我得到了一个计算,但当我尝试弹出下一个项目,这是一个双精度,我得到一个错误 线程“main”java.lang.NullPointerException在sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1008)中出现异常 在java.lang.Double.parseDouble(Double.java:540

我已经被困在这个堆栈问题上好几天了。我做了一件事,另一件事坏了,但我几乎完成了!我现在遇到的问题是,我得到了一个计算,但当我尝试弹出下一个项目,这是一个双精度,我得到一个错误

线程“main”java.lang.NullPointerException在sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1008)中出现异常 在java.lang.Double.parseDouble(Double.java:540)中 在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语句来处理它是字符还是数字,如果是这样的话,我该怎么做呢?我希望我对这个特殊问题已经足够详细了。

第一个或第二个字符串变量可能是空的

以下是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.