boolean matchBracket( String str ) { Stack stack = new Stack(); try { for ( int i = 0; i < str.length(); i++ ) { char curChar = str.charAt( i ); switch ( curChar ) { case '[': case '{': case '(': stack.push( curChar ); break; case ']': if ( !stack.pop().equals( '[' ) ) { return false; } break; case '}': if ( !stack.pop().equals( '{' ) ) { return false; } break; case ')': if ( !stack.pop().equals( '(' ) ) { return false; } break; } } } catch ( EmptyStackException e ) { return false; } if ( stack.isEmpty() ) return true; else return false; }