Olá pessoal, gostaria de uma ajuda. Estou aprendendo a programar e estou tendo meus primeiros contatos com a linguagem java e junto com isso também estão surgindo as primeiras dúvidas.
O problema parece ser simples, entrar com um nome e se esse for “José”, imprimi-lo, onde a entrada pode ser (JOSE, JOSÉ, Jose, José, jose ou josé). Porém quando faço a entrada pelo teclado só retorna “O nome está correto” quando digito as opões sem o acento, quando faço a entrada com acento, retorna “O nome inserido está incorreto”. Isso acontece nas três opções de código abaixo.
Como estou iniciando possa ser que esteja cometendo um erro muito simples, ou possa ser que seja algo que ainda não faço a mínima ideia. De qualquer forma não conseguir compreender o motivo do problema.
Desde já; agradeço pelas respostas…
//OPÇÃO1
System.out.println("ENTRAR COM O NOME DE UMA PESSOA E SÓ IMPRIMI-LÓ SE FOR JOSÉ");
String a107 = tecl.nextLine();
String b107 = "JOSE";
String c107 = "JOSÉ";
if (b107.equalsIgnoreCase(a107) || c107.equalsIgnoreCase(a107)) {
System.out.println("O nome esta correto");
} else {
System.out.println("O nome inserido está incorreto");
}
// OPÇÃO2
System.out.println("ENTRAR COM O NOME DE UMA PESSOA E SÓ IMPRIMI-LÓ SE FOR JOSÉ");
String x107 = tecl.nextLine();
if ((x107.equals("JOSÉ")) || (x107.equals("JOSE")) || (x107.equals("José")) || (x107.equals("Jose")) || (x107.equals("josé")) || (x107.equals("jose"))) {
System.out.println("O nome está correto");
} else {
System.out.println("O nome inserido está incorreto");
}
//OPÇÃO3 OBS: Não tenho muito domínio com essa opção, foi Ctrl-C/Ctrl-V, mas também não funcionou. (As classes Collator e Locale foram importadas)
System.out.println("ENTRAR COM O NOME DE UMA PESSOA E SÓ IMPRIMI-LÓ SE FOR JOSÉ");
String n = tecl.nextLine();
String st1 = "JOSE";
String st2 = "JOSÉ";
Collator coll = Collator.getInstance(new Locale("pt", "BR"));
coll.setStrength(Collator.PRIMARY);
if ((coll.compare(n, st1) == 0) || (coll.compare(n, st2) == 0)) {
System.out.println("O nome está correto");
} else {
System.out.println("O nome inserido está incorreto");
}
// Nesta opção caso a variável n seja substituída por st2 e st1 respectivamente, dentro do comando de seleção ele retorna true.