Using a Stack to Parse a String Expression

import java.util.*;
/**
 * Write a description of class StackParse here.
 *
 * @author (C. Sarkar)
 * @version (12/16/18)
 */
public class StackParse
{
    private static String str = "(((   (45+64.2))))/49.7*3-((4) -  6)";
    //private static String str ="abc+def";
    //private static String str = "";
    
    public static final String OPERANDS = "+-*/()";    

    public static void main(String [] args) {
        Stack<String> answer = tokenize(str);
        while (!answer.isEmpty())
            System.out.println( answer.pop() );
        
    }
    
    public static Stack<String> tokenize(String str) {
        Stack<String> s = new Stack<String>();
        
        String token = "";
        int i=0;
        while (i<str.length()) {
            String nextChar = str.substring(i, i+1);
            // eat the blank spaces
            if (nextChar.equals( " " ))
                ;
            else if (isOperator(nextChar)) {
                if (token.length() > 0) { // if there is an operand
                    s.push(token); // push the operand
                    token = ""; // reset for next token
                }
                s.push(nextChar); // push the operator

            } else {
                token += nextChar;
            }
            ++i;
        }
        if (token.length()>0)
            s.push(token);
        return s;

    }
    
    public static boolean isOperator(String c) {
        return (OPERANDS.indexOf(c) != -1);
    }
}