0
입력이 방정식이고 방정식의 결과를 반환하는 String 인 메소드를 만들고 싶습니다. 이자바에서 문자열의 표현식 평가
String s;
s = "23*14*(15-4)";
System.out.println(ecuation(s));
같은
뭔가 내가 방정식을 평가하는 자바 프로그램을 발견,하지만 난 내 요구에 적응하는 방법을 모른다. 누구든지 도울 수 있니?
public class Evaluate {
public static void main(String[] args) {
Stack<String> ops = new Stack<String>();
Stack<Double> vals = new Stack<Double>();
while (!StdIn.isEmpty()) {
String s = StdIn.readString();
if (s.equals("(")) ;
else if (s.equals("+")) ops.push(s);
else if (s.equals("-")) ops.push(s);
else if (s.equals("*")) ops.push(s);
else if (s.equals("/")) ops.push(s);
else if (s.equals("sqrt")) ops.push(s);
else if (s.equals(")")) {
String op = ops.pop();
double v = vals.pop();
if (op.equals("+")) v = vals.pop() + v;
else if (op.equals("-")) v = vals.pop() - v;
else if (op.equals("*")) v = vals.pop() * v;
else if (op.equals("/")) v = vals.pop()/v;
else if (op.equals("sqrt")) v = Math.sqrt(v);
vals.push(v);
}
else vals.push(Double.parseDouble(s));
}
StdOut.println(vals.pop());
}
}
무엇이 필요합니까? –
이 과정에 기여하려면 프로그램을 보는 것 외에 다른 것을 시도해 봤으면 알려주는 것이 도움이 될 것입니다. 그것을 실행 했습니까? 어떤 입력을 사용 했습니까? 그 결과는 무엇입니까? – user1445967
여기에 게시 한 것은 Evaluate 클래스의 코드입니다. 원하는 것은 String을 입력으로 가져와 Double 값으로 결과를 반환하는 메서드입니다. – CiucaS