2014-02-28 1 views
-1

지금이 스택 문제에 며칠 동안 고생했습니다. 나는 한 가지 일을하면서 다른 일을하게하지만, 거의 끝났어! 내가 계산 일하러 가야하지만 난 시도하고 지금은 더블 다음 항목을 팝업 때, 나는 오류가 발생하는 것을 지금 실행 해요 문제는스택 누름 문제 이중 및 문자

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)

나는 ...이다 연구와 디버깅을 조금했는데, 현재 두 번이고 문자가 아닌 현재 항목을 터뜨릴 때 null 포인터를 얻습니다. 내가 가지고있는 문제는 그것을 처리하는 방법입니다. 이것은 무슨 일이 일어나고 있는지에 대한 발췌 일뿐입니다. 내가 뭘 할 수 있는지 잘 모르겠다. 그게 내가 그 일을 가겠어요 방법 인 경우에

 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); 
     } 

나는, 그것은 문자 또는 숫자의 여부를 다루는 곳이있는 경우/다른 문을 추가해야 하는가? 나는이 특별한 사안에 대해 충분히 자세히 묘사되기를 희망한다.

+0

당신이 first''의 값을 확인하고 ''초나요 : 여기

는 사용해 Double.parseDouble에 대한 설명서입니다? –

+0

나는 그것을 작동시켰다. 이제 몇 가지 논리 오류가 있습니다 ^ – kevorski

답변

0

아마도 첫 번째 또는 두 번째 문자열 변수는 null입니다. link

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.