При вводе символа и проверки на него 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 шт):
Вы сраниваете ссылки на экземпляры String, true будет только если они указывают на один и тот же объект. Метод equals сравнивает символы в строках. Плюс можно было использовать
char symbol = scan.next().charAt(0);
if (symbol == 'a')
тем самым сравнивая примитивные типы, а именно их числовое значение кодов.
Значение строки нельзя проверить через оператор == для сравнения строк используйте метод equals(). Так же может быть полезен метод contains() который проверяет содержит ли одна строка другую.
заготовка:
String для проверки.contains(String который должен содержаться)
пример:
if ( "PrivetHelloZdravstvyite ".contains("Hello")) //true