Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static int evaluateExpression(String expression){
- String[] presmetaj=new String[expression.length()];
- ArrayStack<String> stek=new ArrayStack<String>(100);//nov stek
- int zemaj=0;
- int cira=0;
- for(int i=0;i<expression.length();i++)//go polnime stekot so push() i presmetvime *
- {
- presmetaj[i]=""+expression.charAt(i);
- stek.push(presmetaj[i]);
- if(zemaj==1)
- {
- int operand2=0,operand1=0;
- //while()// mi treba da raspoznavam dali e brojka ili znak
- operand2=operand2*10+Integer.parseInt(stek.pop());
- stek.pop();
- while(stek.peek().equals(Integer.TYPE))
- operand1=operand1*10+Integer.parseInt(stek.pop());
- int rez=1;
- rez=operand1*operand2;
- stek.push(rez+"");
- }
- if(presmetaj[i].equals("*"))
- zemaj=1;
- else
- zemaj=0;
- }
- for(;stek.length()!=1;)//ke presmetvime +
- {
- int operand2=Integer.parseInt(stek.pop());
- stek.pop();
- int operand1=Integer.parseInt(stek.pop());
- int sum=0;
- sum+=operand1+operand2;
- stek.push(sum+"");
- }
- return Integer.parseInt(stek.pop());
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement