Advertisement
Guest User

Untitled

a guest
Oct 31st, 2014
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.07 KB | None | 0 0
  1. public static int evaluateExpression(String expression){
  2. String[] presmetaj=new String[expression.length()];
  3. ArrayStack<String> stek=new ArrayStack<String>(100);//nov stek
  4. int zemaj=0;
  5. int cira=0;
  6.  
  7. for(int i=0;i<expression.length();i++)//go polnime stekot so push() i presmetvime *
  8. {
  9. presmetaj[i]=""+expression.charAt(i);
  10. stek.push(presmetaj[i]);
  11. if(zemaj==1)
  12. {
  13. int operand2=0,operand1=0;
  14. //while()// mi treba da raspoznavam dali e brojka ili znak
  15. operand2=operand2*10+Integer.parseInt(stek.pop());
  16. stek.pop();
  17. while(stek.peek().equals(Integer.TYPE))
  18. operand1=operand1*10+Integer.parseInt(stek.pop());
  19. int rez=1;
  20. rez=operand1*operand2;
  21. stek.push(rez+"");
  22. }
  23. if(presmetaj[i].equals("*"))
  24. zemaj=1;
  25. else
  26. zemaj=0;
  27.  
  28. }
  29. for(;stek.length()!=1;)//ke presmetvime +
  30. {
  31. int operand2=Integer.parseInt(stek.pop());
  32. stek.pop();
  33. int operand1=Integer.parseInt(stek.pop());
  34. int sum=0;
  35. sum+=operand1+operand2;
  36. stek.push(sum+"");
  37. }
  38. return Integer.parseInt(stek.pop());
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement