2015-07-10 3 views
-2

Проблема, с которой я столкнулась, заключается в использовании .contains() для массива. Это моя текущая строка кода:Содержимое контрольной группы Java

if (strings[i].contains(symbol) = true){

strings[] представляет собой массив, который хранит пользователь введенные данные, сообщение об ошибке я получаю за это «Левая рука присваивания должен быть переменной». Я понимаю, что это значит, мой вопрос, могу ли я использовать одну строку из массива при использовании .contains(), или я об этом неправильно?

Любая помощь будет оценена по достоинству. Благодарю.

+3

вам нужно '' == для проверки равенства. '=' является присваиванием. –

+0

И чтобы ответить на ваш вопрос, вы можете использовать '.contains()' только для отдельных строк. Массивы не имеют метода '.contains()'. – Codebender

+0

И поскольку вы сравниваете значения между булевыми значениями, '==' полностью избыточно и не приводит ни к чему, кроме потенциальных проблем, таких как то, что вы сейчас испытываете[email protected] OP использует метод 'contains()' правильно в своем вопросе. –

ответ

3

Проблема заключается в том, что

strings[i].contains(symbol) = true 

это задание из-за =. Вы, наверное, имели в виду

strings[i].contains(symbol) == true 

и, так как левая часть является логическим,

strings[i].contains(symbol) 

уже достаточно.

0

мой вопрос, могу ли я использовать одну строку из массива при использовании .Contains()

Если вы читали API Java для String (http://docs.oracle.com/javase/7/docs/api/java/lang/String.html), является метод из класса String. Зная это, вы можете использовать .contains() на одном элементе String/переменной String.

String str = "abc"; 
str.contains(symbol);  //This is ok. 

String[] strs = {"abc", "def"}; 
str[0].contains(symbol); //This is ok too. 

Оба выше разрешены, потому что оба String.

String[] strs = {"abc", "def"}; 
str.contains(symbol); //This is wrong! 

Еще одна вещь, которую вы должны отметить, сейчас в ваших кодов:

  • При сравнении используйте == и не отдельные =

  • И при сравнении строк или объектов, используйте .equals()


Конечно, вы можете написать:

if(strings.[i].contains(symbol))  //if this statement is true 
if(!strings.[i].contains(symbol)) //if this statement is not true 

вместо

if(strings.[i].contains(symbol) == true)  //if this statement is true 
if(strings.[i].contains(symbol) == false) //if this statement is not true 
Смежные вопросы