IF между строками JAVA [дубликат]

221
31 августа 2017, 18:13

На данный вопрос уже ответили:

  • Как сравнивать строки в Java? 2 ответа
import java.util.Scanner;
public class Main {
public static void main(String[] args){
    Scanner scan = new Scanner(System.in);
    String com = scan.nextLine();
    String a = "hi";
    if(com == a){
        System.out.println("true");
    }else{
        System.out.println("false");
    }
}
}

Не понимаю, в чем проблема. Если ввести hi, то переменная com будет равна hi, но условие выдает false. Если еще под System.out.println("false"); дописать System.out.println(com) и System.out.println(a) , то в консоли выдаст:

false
hi
hi

Помогите сделать так, чтобы он выводил true

Answer 1

Замените com == a на a.equals(com). Тогда будут сравниваться на совпадение последовательности символов. Сейчас же сравниваются ссылки на объекты. А они разные, несмотря на то, что последовательность символов одинакова.

READ ALSO
Наложение скобок [дубликат]

Наложение скобок [дубликат]

На данный вопрос уже ответили:

383
Java JDBC > Не возвращается результат для SQL запросов с переменными типа TABLE

Java JDBC > Не возвращается результат для SQL запросов с переменными типа TABLE

Выполняю SQL запросы через JDBCЕсли запрос содержит переменную типа TABLE, то результат не возвращается:

393
replaceAll - не удаляется подстрока

replaceAll - не удаляется подстрока

Нужно из строки "Привет, как дела? (siteru)" удалить подстроку (site

235
Intent во Fragment

Intent во Fragment

День добрыйПытаюсь открыть активити из фрагмента

256