Estou com uma duvida em relação a comparação equals. Quando vou comparar uma resposta em String que é composta, ele considera como se fosse duas respostas, qual comando eu uso para ele ignorar o espaço e comparar como uma só.
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
String [] estados = new String [10];
String [] capitais = new String [10];
String resp;
estados [0] = "Acre";
capitais [0] = "Rio Branco";
for (int i = 0; i < 9; i++) {
System.out.println("Fale qual é a capital desse estado : "
+ estados[i]);
resp = teclado.next();
if (resp.equalsIgnoreCase(capitais[i])) {
System.out.println("Parabens você acertou");
}else
System.out.println("A resposta certa é : " + capitais[i]);
Fale qual é a capital desse estado : Acre
Rio Branco
A resposta certa é : Rio Branco
bom vc pode usar o comando replace para remover o espaço ex:
String nome = "Rio Branco";
//troca o espaço por nada.
String semEspaco = nome.replace(" ", "");
System.out.println("Sem espaço: " + semEspaco);
//coloca todas as letras minusculas.
String minusculas = semEspaco.toLowerCase();
System.out.println("Letras pequenas: " + minusculas);
A saída vai ser:
Sem espaço: RioBranco
Letras pequenas: riobranco
recomendo utilizar o método toLowerCase q deixa tudo minúsculo, assim independente de o usuario escreve com alguma letra maiuscula ou minuscula a resposta ficaria certa.
o método next() só pega o nome inicial, exemplo se tu digitar no console Rio Branco, ele só pega Rio, então vc deve trocar pelo método nextLine() que pega toda a linha digitada.
Como o amigo disse acima, vc pode usar o método replace(), mas o replace() serve para trocar pedaços de uma String por outro… Existe um método q foi criado só para remover todos os espaços de uma String, chama trim()
basta apenas incrementar no seu if:
if (resp.trim().equalsIgnoreCase(capitais[i].trim()))
S.o.p ("Acertou xD");
recomendo q incremente o método toLowerCase() nos dois tbm
Abraço
Isso mesmo amigo, mas só uma observação para o colega que está com dúvida, no caso o trim() não remove “Todos” os espaços dentro de uma string, ele remove somente os espaços no inicio e fim de uma String.
Aí se vc precisar remover os espaços de inicio e fim e também entre as palavras, combina o trim() com replace()