Ir ao conteúdo
  • Cadastre-se

Ocorrência de letras em string


Posts recomendados

Boa noite, sou iniciante em java, bem iniciante mesmo hahaha! 

 

Estou precisando fazer um código onde me mostre o número de letras em uma string, exemplo:

 

O número de vezes que a letra R aparece na frase "O rato roeu a roupa do rei de roma".

 

Eu pesquisei e achei usando o .split: 

 

public class ContarLetraDeUmaString {

    public static void main(String[] args) {
        int numero = "o rato roeu a roupa do rei de roma".split("r").length - 1;
        System.out.println(numero);
    }
}

 

Agora a minha dúvida é, por que precisamos do ".length -1", tirando isso ele mostra um número a mais de r, no caso 6., seria por quê ele conta o r do split ali?

 

Fora isso, existe algum modo mais fácil de fazer contagem de ocorrência em Strings?

 

Valeu galera!

Link para o comentário
Compartilhar em outros sites

  • Moderador

@RodrigoMoraiss Olá, seja bem vindo em nosso Fórum do Clube do Hardware.

A questão é bem simples!

 

Imagina a String como se fosse um vetor de caracteres e espaços.

EX:

 

H e l l o W o r l d
0 1 2 3 4 5 6 7 8 9

Assim como no vetor(array) a String se comporta da mesma forma onde o número do elemento começa em zero.

A função split() faz com que você separe o sua String de acordo com o separador definido. 

O " length -1 " é usado para obter o comprimento da string menos um, ou seja

 

o rato roeu a roupa do rei de roma
  0    1      2        3      4 

Totalizando 5.

 

Se não usar o  -1

Contaria assim:

o rato roeu a roupa do rei de roma
  0    1      2        3      45 

Totalizando 6.

 

Fazendo desta forma, você precisa declarar como INT 

Mas por exemplo pode fazer desta forma também:

public static void main(String[] args) {
        
        String str = "o rato roeu a roupa do rei de roma";
        int ocorrencias = 0;
  
        for (char caractere : str.toCharArray()){
            if (caractere == 'r') {
                ocorrenciass++; 
            } 
        }
        System.out.println(ococrrencias);
    }

Desta forma, a contagem de caracteres começa em 1,e não precisa usar o split, length e nem - 1.

Existe outros métodos de fazer isso.. e podes também criar sua própria função que retorna o número de ocorrencias

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...