All pastes #753160 Raw Edit

Someone

public text v1 · immutable
#753160 ·published 2007-10-29 00:16 UTC
rendered paste body
boolean postfixExpression()
	{
		stk.clear();
		Scanner scan = new Scanner(expression);
		char current; 
		while (scan.hasNext())
		{
			String token = scan.next();
			if (isNumber(token))
				postfix = postfix + token + " ";	
			else 
			{
				current = token.charAt(0);
				if (isParentheses(current))
				{
					if(stk.empty() || current == Constants.LEFT_NORMAL)
					{
						stk.push(new Character(current));
					}
					else if (current == Constants.RIGHT_NORMAL)
					{
						try
						{
							Character ch = (Character)stk.pop();
							char top = ch.charValue();

							while (top != Constants.LEFT_NORMAL)
							{
								postfix = postfix + top + " ";
								ch = (Character)stk.pop();
								
								top = ch.charValue();	
							}
						}
						catch(EmptyStackException e)
						{
							return false;
						}
					}
				}
				else if (isOperator(current))
				{
					if(stk.empty())
						stk.push(new Character(current));
					else
					{
						try
						{
							char top = (Character)stk.peek();
							boolean higher = hasHigherPrecedence(top, current);
							
							while(top != Constants.LEFT_NORMAL && higher)
							{								
								postfix = postfix + stk.pop() + " ";
								top = (Character)stk.peek();
							}
							stk.push(new Character(current));
						}
						catch(EmptyStackException e)
						{
							stk.push(new Character(current));
						}
					}
				}
			}
		}
		
		try
		{
			while(!stk.empty())
			{
				postfix = postfix + stk.pop() + " ";
			}
		}
		catch(EmptyStackException e)
		{
			
		}
		return true;
	}