지금은 스택을 배우고 있습니다. 제 코드가 컴파일됩니다. 코드를 실행하면 디버그 println이 인쇄되지 않고 오류java.lang.OutOfMemoryError : Java 힙 공간 오류가 발생하는 이유는 무엇입니까?
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:2760)
at java.util.Arrays.copyOf(Arrays.java:2734)
at java.util.Vector.ensureCapacityHelper(Vector.java:226)
at java.util.Vector.addElement(Vector.java:573)
at java.util.Stack.push(Stack.java:50)
at stacks.main(stacks.java:56)
이 표시됩니다. 그것이 operatand없는 경우
import ch03.stacks.*;
import java.util.*;
public class stacks {
public static void main (String []args){
System.out.printf("Enter a math equation in reverse polish notation:\n");
Stack<Double> pemdas = new Stack<Double>();
Scanner input = new Scanner(System.in);
String in = input.next();
double temp1, temp2, resultant = 0;
while(input.hasNext()){
if(in == "+"){
temp1 = pemdas.peek();
pemdas.pop();
temp2 = pemdas.peek();
pemdas.pop();
resultant = temp1 + temp2;
pemdas.push(resultant);
System.out.println(resultant);
}
if(in == "-"){
temp1 = pemdas.peek();
pemdas.pop();
temp2 = pemdas.peek();
pemdas.pop();
resultant = temp1 - temp2;
pemdas.push(resultant);
System.out.println(resultant);
}
if(in == "*"){
temp1 = pemdas.peek();
pemdas.pop();
temp2 = pemdas.peek();
pemdas.pop();
resultant = temp1 * temp2;
pemdas.push(resultant);
System.out.println(resultant);
}
if(in == "/"){
temp1 = pemdas.peek();
pemdas.pop();
temp2 = pemdas.peek();
pemdas.pop();
resultant = temp1/temp2;
pemdas.push(resultant);
System.out.println(resultant);
}
else
pemdas.push(Double.parseDouble(in));
System.out.println(resultant);
}
System.out.println("Answer:"+ resultant);
}
}
그래서 내가 먼저 내 스택에에 팝업, 다음 역 폴란드 표기법에서 정수의 문자열에 읽고 :
내 코드처럼 보인다. 적어도 그것이 내가하고 있다고 생각하는 것입니다. 어떤 도움이라도 대단히 감사합니다.
great. 그러나 문자열의 동등 함은 의미가 있습니다. int double 또는 boolean과 비교할 수 없습니다. – user1093111
스레드 "main"의 예외 java.lang.NumberFormatException : 입력 문자열의 경우 : "*" \t at sun.misc.FloatingDecimal.readJavaFormatString (FloatingDecimal.java:1222) \t at java.lang.Double.parseDouble (Double. java : 510) \t at stacks.main (stacks.java:65) – user1093111
프롬프트에서 작업을 추가 할 때이 오류가 발생했다는 것을 친구가 알려 주셨습니다. – user1093111