2012-10-14 3 views

ответ

2

== используется для identity сравнения, и он проверяет, являются ли два reference указывает на тот же объект (в вашем случае объект String).

Вы должны использовать метод equals сравнить содержимое строки:

if (x.equals("S")) 
1

Это сравнивает ссылки не строка равенства x=="S" вы должны использовать "S".equals(x).

0
if(x.equals("S")) 

== проверяет ссылку, а не значение.

1

Используйте метод equals() вместо класса String, а не ==.

0

Для сравнения содержимого строки вам необходимо использовать String.equals. Оператор == используется для сравнения ссылок на объекты.

Переключение позиций аргументов позволит избежать NullPointerException:

if ("S".equals(x)) 
0

Вы должны использовать метод .equals для сравнения строк (и любые не-примитивы в целом).

if (x.equals("S")) { 
    //stuff 
} 
0

В Java equals() проверяет равенство и == проверяет идентичность.

0

Много проблем ...

  • Ваша переменная x является String! Вы не должны использовать оператора ==, используйте .equals() вместо

  • Кроме того, пока вы на нем, вы должны использовать .equalsIgnoreCase() для игнорирования случая.

  • Кстати, я должен отметить, что есть функция String.charAt(int), которая возвращает символ в указанном месте ...

Но если вы хотите, чтобы выбрать все строки (ваш вопрос не раскрывает свои первоначальные намерения, почему и что вы пытаетесь достичь), но я хотел бы посмотреть в регулярные выражения, используя String.matches()

0

Почему бы вам не использовать функцию charAt и сделать это так:

char x = g.charAt(0); 
    if (x == 'S') { 
     // Stuff 
    } 

Если вы не хотите использовать символ, используйте метод equals в сравнении if блока как:

String x = g.substring(0, 1); 
    if (x.equals("S")) { 
     // stuff 
    } 
Смежные вопросы