2015-11-12 2 views
0

У меня есть этот цикл, но я не знаю, почему он никогда не проверять состояние, я думал, что это может для Integer.toString, пожалуйста, помогите, если вы можете:как сравнить строку с целым числом

public static void linerSearch(String[] array1, int key){ 
     int size = array1.length; 
     for(int i=0;i<size;i++){ 
      if(array1[i] == Integer.toString(key)){ // < -- This line 
       System.out.println("The node is already in the list"); 
      } 
     } 
    } 

ответ

1
if(array1[i].equals(Integer.toString(key))){ 

с == вы сравниваете ссылки на объекты, а не значения. Вы должны использовать equals()

1

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

if (array1[i].equals(Integer.toString(key)) 
+1

вы можете сравнивать строки с '==' но это равенство по объектным ссылкам, а не по содержанию –

+1

Вы совершенно правы! Я изменю свое сообщение соответственно! – ParkerHalo

2
if(Integer.parseInt(array1[i]) == key){ 
+0

приятная альтернативная возможность –