сравнение со строками, имеющими пробел - PullRequest
2 голосов
/ 15 декабря 2011

Извините, если это глупый вопрос.Мне нужно сравнить с именем, которое состоит из трех слов, разделенных одним пробелом.Если имя пустое или «Это Android», я бы что-то сделал, иначе я бы сделал что-то ещеНапример, следующий код подходит для этого сравнения?

 if((name==null)||(name.equalsIgnoreCase("This is Android")))
     { 
      //start activity 1
      }
    else 
      {
        //start activity 2
       }

Ответы [ 4 ]

6 голосов
/ 15 декабря 2011

«Это Android» отличается от «Это Android» и equalsIgnoreCase вернет false.Вы можете использовать trim() для удаления пробелов и начала или конца String s.

Надеюсь, это поможет!

3 голосов
/ 15 декабря 2011

Вы должны проверить, является ли name нулевым, прежде чем сделать это, в противном случае он выглядит хорошо. (за исключением того, что оно должно быть if вместо If):

//either
if(name != null) {
    if(name.equalsIgnoreCase("This is Android") {

    }
}

//or
if("This is Android ".equalsIgnoreCase(name)) {

Обновление:

Когда вы сравниваете строки, пробелы считаются. Таким образом, в основном «Hello world» и «Hello world» не равны.

Вам нужно использовать метод .trim(), чтобы игнорировать окружающие пробелы.

name = name.trim(); //since strings are immutable you need to assign return value to name
if("This is Android".equalsIgnoreCase(name)) { 
1 голос
/ 15 декабря 2011
if("This is Android".equalsIgnoreCase(name))
    // start activity 1
} else {
    // start activity 2
}

или пуленепробиваемый (в случае, если пользователь вставил значение с нежелательными пробелами в конце строки)

if(name != null && "This is Android".equalsIgnoreCase(name.trim()))
    // start activity 1
} else {
    // start activity 2
}
1 голос
/ 15 декабря 2011

Всегда оставляйте константу String с левой стороны равной, это гарантирует отсутствие NPE:

, например:

if ("This is Android ".equalsIgnoreCase(str1)) {
    // start activity 1
} else {
    // start activity 2
}

Если вам не нужен пробел, добавьте trim():

if ("This is Android ".trim().equalsIgnoreCase(str1)) {
     // start activity 1
} else {
     // start activity 2
}
...