В чем ошибка в коде (Scanner)?

Если ввести hello, то он все равно выводит No.

import java.util.Scanner;

public class helloworld
{
    public static void main(String[] args) 
    {
        Scanner scan = new Scanner(System.in);
        String inp = scan.nextLine();
        if(inp == "hello")
        {
            System.out.println("Yes!");
        }
        else
        {
            System.out.println("No.");
        }
    }
}

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

Автор решения: had0uken

Ошибка в том, что оператор == проверяет ссылаются ли две переменные на один и тот же объект. И его стоит применять только при сравнении примитивных типов (int, char, ...). Если вы хотите сравнить объекты, (а вы сравниваете объекты класса String), то нужно использовать метод equals. поэтому замените строчку

if(inp == "hello")

на

if(inp.equals("hello"))
→ Ссылка