При вводе символа и проверки на него if возвращает false

Я хочу чтобы при вводе определенного символа (в данном случае "a") выполнялось определенная последовательность команд, но при использовании if оказывается что (a != "a"). Я пытался найти что-нибудь в Интернете, но ничего не вышло. Может кто знает как исправить и из-за чего это? Я даже на телефоне пытался этот же код запустить, но все равно выдает false

    import java.util.Scanner;
    public class Test {
        public static void main(String[] args) {
            Scanner scan = new Scanner(System.in);
            System.out.print("Enter Symbol: ");
            String symbol = scan.next();
            if (symbol == "a") {System.out.println("true");}
            else {System.out.println("false");}
    }
}

Ответы (3 шт):

Автор решения: Qwertiy
"a".equals(symbol)

PS: А возвращать может только return.

→ Ссылка
Автор решения: Scruffy the Janitor

Вы сраниваете ссылки на экземпляры String, true будет только если они указывают на один и тот же объект. Метод equals сравнивает символы в строках. Плюс можно было использовать

char symbol = scan.next().charAt(0);
            if (symbol == 'a') 

тем самым сравнивая примитивные типы, а именно их числовое значение кодов.

→ Ссылка
Автор решения: Upiter 1401

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

заготовка:

String для проверки.contains(String который должен содержаться)

пример:

if ( "PrivetHelloZdravstvyite ".contains("Hello"))   //true  
→ Ссылка