Salve ho eseguito un esercizio che chiede mi la cosa seguente :

Scrivere un programma che stampi la domanda “Vuoi continuare?” e che attenda
dati dall’utente. Se l’utente immette “S”, “Sì”, “Ok”, “Certo” o “Perché no?”,
stampare “OK”. Se l’utente scrive “N” o “No”, stampare “Fine”. Negli altri casi,
stampare “Dato non corretto”. Non considerare differenze tra maiuscolo e
minuscolo, quindi anche “s” e “sì” sono validi.

Io ho fatto 2 classi:
codice:
public class InputChecker {
	private String c;
		
	InputChecker(String b){
		 c = b.toUpperCase(); //trasforma la stringa b inserita in maiuscolo 
		if(c=="SI"|| c=="CIAO"|| c=="S" || c=="CERTO"){
			System.out.println("OK");
		}
		else if(c=="N" || c=="NO"){
			
			System.out.println("Fine");
		}
		else{
			System.out.println("Dati non corretti");

		}
	}
	public String get_c(){
		return c;              //utile per vedere cosa gli arriva in c
	}
}
e l'altra :
codice:
import java.util.Scanner ;

public class ProvaInputChecker {


	public static void main(String[] args) {
		Scanner b = new Scanner(System.in) ;
		System .out.println("Vuoi Continuare?");
		String a = b.next();
		InputChecker d = new InputChecker(a);
		System.out.println(d.get_c()); // l'ho inserita dopo per vedere cosa arrivava in c (per l' IF)
	}

}
Il programma mi rende sempre "Dati non corretti" anche mettendo dati giusti (ho usato il get_c per vedere