2014-12-24 3 views
0

У меня есть выделенное исключение из массива из следующей программы. Проблема возникает из-за того, что мой первый оператор 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); 
    } 
    } 
+0

В Java Strings should't можно сравнить с оператором '' == а с помощью метода '.equals()' - Но есть метод, называемый 'IsEmpty() 'вы могли бы использовать. – dehlen

ответ

1

isEmpty Строка по умолчанию.

if (expression.isEmpty()) 

вместо

if (expression == "") 
+0

не могли бы вы объяснить, почему == "" не работает, пожалуйста? – giulio

+0

посмотреть http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java – newuser

Смежные вопросы