Wortanzahl einer Zeichenkette ermitteln in Java

Rupam Yadav 12 Oktober 2023
  1. Verwenden Sie StringTokenizer, um Wörter in einem String in Java zu zählen
  2. Verwenden von split() und regulären Ausdrücken zum Zählen von Wörtern in einer Zeichenkette in Java
  3. Anzahl der Wiederholungen eines Wortes in einer Zeichenkette in Java ermitteln
Wortanzahl einer Zeichenkette ermitteln in Java

In diesem Artikel werden wir etwas Licht darauf werfen, wie die Anzahl der Wörter in einer Zeichenkette in Java gezählt wird und wie dies auf verschiedene Weise erreicht werden kann.

Verwenden Sie StringTokenizer, um Wörter in einem String in Java zu zählen

Mit der Klasse StringTokenizer in Java können wir einen String in mehrere Token aufteilen. Die Methoden in dieser Klasse unterscheiden weder zwischen Anführungszeichen, Bezeichnern und Zahlen in Anführungszeichen noch erkennen oder überspringen sie Kommentare. Die Zeichen, die Token (Trennzeichen) trennen, können entweder zum Zeitpunkt der Erstellung oder auf Token-Basis angegeben werden.

Die Klasse StringTokenizer zählt die Leerzeichen und Tabulatoren nicht automatisch, daher wird sie alleine behandelt.

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));
  }
}

Ausgabe:

Word count without delimiter: 6
Word count: 4

Hier haben wir stringTokenizer1 mit der Übergabe einer Zeichenkette im Konstruktor erstellt. Es wird ein Standardtrennzeichen verwendet, während für das benutzerdefinierte Trennzeichen stringTokenizer2 separate Token übergeben werden. Der erste Ansatz zählt Bindestriche, der zweite nicht.

Verwenden von split() und regulären Ausdrücken zum Zählen von Wörtern in einer Zeichenkette in Java

Die Methode split(String regex) in Java verwendet einen regulären Ausdruck und unterbricht den angegebenen String, der mit dem Regex übereinstimmt, und gibt ein Array von Zeichenketten zurück.

Der reguläre Ausdruck, den wir hier verwenden, ist \\s+, der das Leerzeichen von der Zeichenkette trennt oder mit anderen Worten die angegebene Zeichenkette um das Leerzeichen aufteilt. Die Anzahl der Wörter in der Zeichenkette entspricht der Länge des Zeichenkettenarrays words, die wir durch Aufrufen von length erhalten können. Die Ausgabe zeigt die Anzahl der Wörter in 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);
  }
}

Ausgabe:

Word Count is: 7

Anzahl der Wiederholungen eines Wortes in einer Zeichenkette in Java ermitteln

Wir können berechnen, wie oft ein Wort in der angegebenen Zeichenkette wiederholt wird. Hier ist randomText eine Zeichenkette, in der wir herausfinden müssen, wie oft das Wort blue wiederholt wird. Dazu nehmen wir eine Variable times vom Typ int und initialisieren sie auf 0. Führen Sie eine for-Schleife von 0 bis zur Länge des randomText aus.

Die Methode startsWith() vergleicht, ob die Zeichenkette mit den Zeichen der angegebenen Zeichenkette beginnt. Für i = 0 erhält die Methode randomText.substring(0) die TeilZeichenkette am Index 0 und prüft, ob sie startsWith("blue") und wenn sie übereinstimmt, und erhöht dann times um 1; Andernfalls wird es nicht erhöht.

In ähnlicher Weise prüft es den Rest der Länge und gibt aus, wie oft das Wort in der angegebenen Zeichenkette als Ausgabe wiederholt wurde.

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");
  }
}

Ausgabe:

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

Verwandter Artikel - Java String