Смущает вывод при работе со строками

1
    String sb1 = new String("Soft");
    String sb2 = new String("Soft");

    System.out.println("ANS1->" +sb1 == sb2);
    System.out.println(sb1 == sb2 + " After result");
    System.out.println("ANS2->" +sb1.equals(sb2));

Это приводит к выводу, как показано ниже, но я не понимаю, почему тексты "ANS1" и "After result" не отображаются. Просьба помочь в этом.

ложный

ANS2-> верно

  • 4
    @Biffen - Нет. Это не
  • 0
    попробуйте использовать equals вместо == как вы использовали в вашем третьем выводе
Теги:

2 ответа

5

Потому что: "ANS1->" +sb1 == sb2 ==> ("ANS1->" +sb1) == sb2. Теперь компилятор делает это и печатает false потому что ("ANS1->" +sb1) !=sb2.

Even: System.out.println("ANS1->" +sb1 == sb1); печатает false: P

  • 1
    Спасибо большое .. :) Правильный путь к коду - "System.out.println (" ANS1-> "+ (sb1 == sb2));"
1

В дополнение к ответу TheLostMinds:

System.out.println("ANS1->" + (sb1 == sb2));
System.out.println((sb1 == sb2) + " After result");

Теперь вы видите "потерянные" строки.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню