2014-01-08 3 views
-2

Можете ли вы сказать мне, почему в ниже код содержит не работает:Содержит метод не работает

String str= 
     "/XYZ1/Test3-NV28"+ 
     "/678/13855497776650XB"+ 
     "/123/"; 

if ("XYZ".contains(str)) 

     System.out.println("yes"); 
else 
    System.out.println("no"); 
    } 

RP

+0

Вы ищете наоборот 'если (str.contains ("XYZ"))'. 'str' содержит« XYZ », но« XYZ »не содержит' str'. –

+0

отредактировал мой вопрос. Неправильно ZouXZou, я тоже попробовал это. если я говорю str.contains («XYZ»), он возвращает true. – rajputhch

+0

'str' содержит' XYZ' (''/XYZ1/Test3-NV28 "'), поэтому это нормально, что возвращает true. Вы должны прочитать документ [содержит] (http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#contains (java.lang.CharSequence)): _ "Возвращает true тогда и только тогда, когда эта строка содержит указанную последовательность значений char. "_ –

ответ

3

Вы находитесь используя Yoda style condition в неправильный путь. Вы должны использовать его в качестве

if (str.contains("XYZ")) { 

} 

Для Furthur разъяснений

String x= "test"; 
    if (x.contains("est")) { //true 
     System.out.println("true"); 
    } 
if(x.contains("set")){ //false 
    System.out.println("false"); 
} 
+1

+1 для стиля Йода –

0

изменение этой if ("XYZ".contains(str)) в if (str.contains("XYZ"))

вы ищете, если XYZ присутствует в String str или нет

От oracle docs

Возвращает true тогда и только тогда, когда эта строка содержит указанную последовательность значений символов.

0

Должно быть

str.contains("XYZ") 

str потому, что содержит "XYZ" но не XYZ содержит str

содержит само название метода говорит смысл метода ...

0

изменить это

if ("XYZ".contains(str)) 

к

if (str.contains("XYZ")) 

str потому, что содержит "XYZ". в то время как "XYZ" не содержит str Вот Java Doc link

0

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

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