Galera, precisando de uma ajudinha aqui

import java.util.Scanner;


public class At{
    public static void main(String [] args){
        
        Scanner ler;
        String nome;
        int cont;
        int contvog=0;
      
        ler = new Scanner(System.in);
       
        System.out.print("Digite uma palavra: ");
        nome = ler.nextLine();        
       
    for(int i = 0; i < nome.length(); i++){ 
    char c = nome.charAt(i);
    if(c.equalsIgnoreCase("A")) || c.equalsIgnoreCase("E") || c.equalsIgnoreCase("I") || c.equalsIgnoreCase("O") || c.equalsIgnoreCase("U"))
    contvog++;
    
     System.out.print("Vogais: " +contvog);    
    
    }      
        
    }
    
    }

Poderiam me ajudar, queria saber em que estou errando

Olá amigo, é preciso criar uma String com o valor do caractere, para ter acesso ao método equalsIgnoreCase() para realizar a comparação.

Scanner ler;
		String nome;
		int cont;
		int contvog = 0;

		ler = new Scanner(System.in);

		System.out.print("Digite uma palavra: ");
		nome = ler.nextLine();

		for (int i = 0; i < nome.length(); i++) {
			String c = String.valueOf(nome.charAt(i));
			 if(c.equalsIgnoreCase("A") || c.equalsIgnoreCase("E") ||
			 c.equalsIgnoreCase("I") || c.equalsIgnoreCase("O") ||
			 c.equalsIgnoreCase("U"))
			contvog++;
		}
		System.out.print("Vogais: " + contvog);

Valeu irm√£o !!! Fiquei com uma d√ļvida, vc sabe me dizer para que serve o String.valueOf() eu ainda n√£o vi esse m√©todo. Tem outra forma de colocar o equalsIgnoreCase(), ou √© s√≥ essa ?

De acordo com a documentação o método estático String.valueOf() retorna uma String representado o argumento, no seu caso foi o argumento do tipo char.

Alguns exemplos de uso do String.valueOf():

		boolean  b = true; 
		char  c1  = 'a';
		char [] c2 = {'a', 'b', 'c'};
		int i = 1;
		long  l = 222222222;
		float  f = 12.5f; 
		double d = 14.588555;
		
		System.out.println(String.valueOf(b)); // "true"
		System.out.println(String.valueOf(c1)); // "a"
		System.out.println(String.valueOf(c2)); // "abc"
		System.out.println(String.valueOf(i)); // "1"
		System.out.println(String.valueOf(l)); // "222222222"
		System.out.println(String.valueOf(f)); // "12.5"
		System.out.println(String.valueOf(d)); // "14.588555"

No caso de Objeto, se o argumento diferente de null, retorna o método toString().

public class Cachorro {
			
	private String nome;
			
	public Cachorro(String nome) {
		this.nome = nome;
	}
			
	public String getNome() {
		return nome;
	}
			
	public void latir() {
		System.out.println("Au, au, au");
	}
			
	@Override
	public String toString() {
		return "Nome: " + this.nome;
	}
}
public class Teste {
		public static void main(String[] args) {
			Cachorro cachorro = new Cachorro("dog")

			System.out.println(String.valueOf(cachorro)); // "Nome: dog"
		}
}

De acordo com a documenta√ß√£o o m√©todo equalsIgnoreCase‚Äč realizar a compara√ß√£o de duas String, ent√£o √© necess√°rio converter o tipo char para String para utiliz√°-lo.

Outra maneira de converte um char em String, é com uso da classe Character com o método toString(char c) que retorna uma String representando o argumento.

char c = 'a';
String x = Character.toString(c);

System.out.println(x); // "a"

Referência

Oracle and/or its affiliates. Java SE 11 & JDK 11. Disponível em: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html#valueOf(char%5B%5D). Acesso em 7 mar. 2020.

Oracle and/or its affiliates. Java SE 11 & JDK 11. Disponível em: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html#equalsIgnoreCase(java.lang.String). Acesso em 7 mar. 2020.

Oracle and/or its affiliates. Java SE 11 & JDK 11. Disponível em: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Character.html#toString(char). Acesso em 7 mar. 2020.

1 curtida