Solicitar um caracter ao utilizador e ver quantas vezes existe nas Strings

Boas pessoal. Outro dia outra dúvida… Sendo que este exercício é dois em um.

A primeira parte do exercício era preencher um array de tamanho 10 com Strings e construir um array novo com o tamanho
de cada String. Acho que essa parte consegui.

A segunda parte é que está mais complicada de resolver… Solicitar um caracter ao utilizador e verificar quantas vezes ele
existe nas Strings inseridas.

Vou colocar o código que já fiz:

import java.util.Arrays;
import java.util.Scanner;

public class Ex_9_10{

private static Scanner teclado = new Scanner(System.in);

public static void main(String[] args) {
    pedirCaracteres();
    pedirCarac(pedirCaracteres());

}


public static int[] pedirCaracteres() {
    String[] caracteres = pedirString(10);
    for (int i = 0; i < caracteres.length; i++) {

    }
    System.out.println("As palavras introduzidas foram: " + Arrays.toString(caracteres));
    int array = caracteres.length;
    int[] newarray = new int[array];
    System.out.println("O novo array tem o comprimento de : " + newarray.length);
    return newarray;
}
public static String[] pedirString(int num){
    System.out.println("Introduza "+num+" palavras.\r");
    String[] carac = new String[num];

    for(int i = 0; i<carac.length; i++){
        carac[i] = teclado.nextLine();
    }
    return carac;
}

public static int[] pedirCarac(int[] pedircaracter){
    for(int i = 0; i< pedircaracter.length; i++){
        pedircaracter[i]=teclado.next().charAt(0);
        System.out.println("O caracter introduzido existe "+ Arrays.toString(pedircaracter) + "vezes nas strings");
    }
    return pedircaracter;
}

}

Cumprimentos :slight_smile:

Simplifique sua lógica:
Imagine que, ao invés de solicitar um caractere, você solicitasse uma palavra.
Como faria para verificar a quantidade de vezes que aquela palavra se repetiu?
Se conseguir descobrir como resolver essa parte, a outra é mais simples.
Toda String pode ser convertida em um array de caracteres, através da invocação do método toCharArray().
Usando a mesma lógica que você utilizaria para identificar a quantidade de palavras, pode identificar a quantidade de vezes que este caractere se repete.

Ou talvez um charAt dentro de um for que vai da primeira letra até a ultima da palavra com um if para ver se o caractere é igual e faz a contagem.

Extra:
Lembrando que se você usar a função length ela retorna a contagem começando do 1, e o charAt começa no 0 então se a palavra tiver 5 caracteres e você der um length nela, o retorno vai ser 5 já o charAt irá poderá ir até a posição 4.

E qual seria o problema disso?

String palavra = "ABCDEF";
int length = palavra.length();
for(int i = 0; i < length; i++){
    if('F' == palavra.charAt(i)) {
        System.out.println('Posição ' + (i + 1));
    }
}

Só coloquei o extra lá para aprofundar um pouco mais no funcionamento tanto do length quanto do charAt por que as vezes costumo usar eles juntos e podem ocorrer alguns problemas simples ao lidar com eles. Bom sou novo em programação mas se quiser que eu retire a resposta só pedir.