2016-12-17 7 views
0

Почему я получаю различные значения, когда я System.out.println(s[0] == "java"); и System.out.println(args[0] == "java");s [0] и арг [0] содержит «Java» до сих пор результат сравнения отличается для оператора == в печати и основной метод

public class StringDemo { 
    static void print(String[] s) { 
     System.out.println(s[0] == "java"); 
    } 

    public static void main(String[] args) 
    { 
     // java is passed as command line argument 
     System.out.println(args[0] == "java"); 
     String s[] = new String[3]; 
     s[0] = "java"; 
     print(s); 
    } 
} 
+1

здесь полный код –

+0

я использую == в обоих заявлениях это не дублировать –

+0

Какие один является «истинным», а какой - «ложным»? – Gendarme

ответ

-1

Проблема в том, что вы сравниваете адрес, а не значение.

Если вы хотите сравнить значения вам необходимо использовать метод .equals:

System.out.println(args[0].equals("java")); 

и

System.out.println(s[0].equals("java"));