У меня есть выделенное исключение из массива из следующей программы. Проблема возникает из-за того, что мой первый оператор if (expression == ""
) не улавливает случай, когда мое выражение пустое. Почему он не поймал и как я могу правильно записать это условие?Проверка пустой строки в java
public static boolean isWellFormed(String expression, int braces, int brackets, int parentheses){
if (expression == ""){
if (braces == 0 && brackets == 0 && parentheses == 0){
return true;
}
else{
return false;
}
}
System.out.println("expression " + expression + " " + expression.length());
char firstChar = expression.charAt(0);
if (firstChar == '['){
return isWellFormed(expression.substring(1),braces, brackets+1, parentheses);
}
else if(firstChar == '{'){
return isWellFormed(expression.substring(1),braces+1, brackets, parentheses);
}
else if(firstChar == '('){
return isWellFormed(expression.substring(1),braces, brackets, parentheses+1);
}
else if(firstChar == ']'){
return isWellFormed(expression.substring(1),braces, brackets-1, parentheses);
}
else if(firstChar == '}'){
return isWellFormed(expression.substring(1),braces-1, brackets, parentheses);
}
else if(firstChar == ')'){
return isWellFormed(expression.substring(1),braces, brackets, parentheses-1);
}
else{
return isWellFormed(expression.substring(1),braces, brackets, parentheses);
}
}
В Java Strings should't можно сравнить с оператором '' == а с помощью метода '.equals()' - Но есть метод, называемый 'IsEmpty() 'вы могли бы использовать. – dehlen