I am trying to interpret a string input from the user. I take in a phrase, split it into an array, and compare each value in the array to ")" as a boolean. The problem is it will read the string "( 3 + 5 )", and I know that the array that takes in the string is ["(","3","+","5",")"] and when I print out position 0 and 4 of the array, it returns "(" and ")". I know that these are type string of length 1, however, when I compare the exact same values to the "(" ")" in the code, it returns false.
Any idea what's wrong? Here's my code. The parts that I am having trouble with are the if statements.
public String buildExpression(String E){ String[] exprArr=E.split(" "); int len=exprArr.length; BTStacker S = new BTStacker(); String val; for (int i=0; i<len; i++){ val=exprArr[i]; System.out.println(val); if (val=="("){ System.out.println("2"); } else if(val != ")"){ BSTree T=new BSTree(); BSTNode v=new BSTNode(val,null); T.addRoot(v); S.push(T); } else{ BSTree Ty = S.pop(); BSTree T=S.pop(); BSTree Tx=S.pop(); T.attach(T.root(),Tx,Ty); S.push(T); } } }