Ir ao conteúdo
  • Cadastre-se
RodrigoMoraiss

Ocorrência de letras em string

Recommended Posts

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!

Compartilhar este post


Link para o post
Compartilhar em outros sites

@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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×