Obtenha a contagem de palavras de uma string em Java

Rupam Yadav 12 outubro 2023
  1. Use StringTokenizer para contar palavras em uma string em Java
  2. Use split() e Expressão Regular para contar palavras em uma string em Java
  3. Obtenha o número de vezes que uma palavra é repetida em uma string em Java
Obtenha a contagem de palavras de uma string em Java

Neste artigo, vamos lançar alguma luz sobre como contar o número de palavras em uma string em Java e as diferentes maneiras de fazer isso.

Use StringTokenizer para contar palavras em uma string em Java

A classe StringTokenizer em Java nos permite quebrar uma string em vários tokens. Os métodos nesta classe não diferenciam entre strings, identificadores e números entre aspas, nem reconhecem ou ignoram comentários. Os caracteres que separam os tokens (delimitadores) podem ser especificados no momento da criação ou por token.

A classe StringTokenizer não conta os espaços em branco e as guias automaticamente, portanto, é tratada por conta própria.

import java.util.StringTokenizer;
public class WordCount {
  public static void main(String args[]) {
    String mydelim = " - ";
    String myString = "The  sky - - is blue!";
    StringTokenizer stringTokenizer1 = new StringTokenizer(myString);
    StringTokenizer stringTokenizer2 = new StringTokenizer(myString, mydelim);

    int tokensCount1 = stringTokenizer1.countTokens();
    int tokensCount2 = stringTokenizer2.countTokens();

    System.out.println("Word count without delimiter: " + String.valueOf(tokensCount1));
    System.out.println("Word count: " + String.valueOf(tokensCount2));
  }
}

Resultado:

Word count without delimiter : 6 Word count : 4

Aqui, criamos stringTokenizer1 passando uma string no construtor, ele usa o delimitador padrão, enquanto para stringTokenizer2 o delimitador personalizado para tokens separados é passado. A primeira abordagem conta hífens, enquanto a segunda não.

Use split() e Expressão Regular para contar palavras em uma string em Java

O método split(String regex) em Java usa uma expressão regular e quebra a string fornecida que corresponde à regex e retorna um array de strings.

A expressão regular que usamos aqui é \\s+ que separa o espaço em branco da string ou, em outras palavras, divide a string dada em torno do espaço em branco. O número de palavras na string é igual ao comprimento do array string palavras que podemos obter chamando length nele. A saída mostra o número de palavras em myStr.

public class WordCount {
  public static void main(String args[]) {
    String myStr = "the butcher's wife, she was from Montreal";
    String[] words = myStr.split("\\s+");
    System.out.println("Word Count is: " + words.length);
  }
}

Resultado:

Word Count is: 7

Obtenha o número de vezes que uma palavra é repetida em uma string em Java

Podemos calcular o número de vezes que uma palavra é repetida em uma determinada string. Aqui, randomText é uma string na qual precisamos encontrar quantas vezes a palavra blue é repetida. Para isso, pegamos uma variável times do tipo int e inicializamos como 0. Execute um loop for de 0 até o comprimento de randomText.

O método startsWith() compara se a string começa com os caracteres de uma determinada string. Para i = 0 o método randomText.substring(0) obtém substring no índice 0 e verifica se startsWith("blue") e se corresponde, então incrementará vezes em 1; caso contrário, não aumentará.

Da mesma forma, ele verifica o resto do comprimento e imprime o número de vezes que a palavra foi repetida na string fornecida como saída.

public class WordCount {
  public static void main(String args[]) {
    String randomText = "The sky is blue it meets the sea which is also blue";

    String text = "blue";
    int times = 0;
    for (int i = 0; i < randomText.length(); i++) {
      if (randomText.substring(i).startsWith(text)) {
        times++;
      }
    }
    System.out.println(randomText + " contains " + text + " " + times + " times");
  }
}

Resultado:

The sky is blue it meets the sea which is also blue contains blue 2 times
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

Artigo relacionado - Java String