在 Java 中獲取一個字串的字數

Rupam Yadav 2023年1月30日 2021年4月29日
  1. 在 Java 中使用 StringTokenizer 來計算字串中的字數
  2. 在 Java 中使用 split() 和正規表示式對字串中的單詞進行計數
  3. 在 Java 中獲取一個單詞在字串中重複的次數
在 Java 中獲取一個字串的字數

在本文中,我們將闡明如何計算 Java 字串中的字數以及實現此目的的不同方法。

在 Java 中使用 StringTokenizer 來計算字串中的字數

Java 中的 StringTokenizer 類使我們可以將字串分成多個令牌。此類中的方法不區分帶引號的字串,識別符號和數字,也不識別或跳過註釋。分隔標記(定界符)的字元可以在建立時指定,也可以在每個標記的基礎上指定。

StringTokenizer 類不會自動計算空格和製表符,因此它是獨立處理的。

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

輸出:

Word count without delimiter: 6
Word count: 4

在這裡,我們建立了 stringTokenizer1 並在建構函式中傳遞了一個字串,它採用了預設的分隔符,而對於 stringTokenizer2 則使用了分隔符的自定義分隔符。第一種方法可以計算連字元,而第二種則不。

在 Java 中使用 split() 和正規表示式對字串中的單詞進行計數

Java 中的 split(String regex) 方法採用一個正規表示式,並中斷與該 regex 匹配的給定字串,並返回一個字串陣列。

我們在這裡使用的正規表示式是\\s+,它將空格與字串分隔開,或者換句話說,它將給定的字串圍繞空格分隔開。字串中的單詞數等於字串陣列 words 的長度,我們可以通過對字串陣列 length 進行呼叫來獲得長度。輸出顯示 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);
    }
}

輸出:

Word Count is: 7

在 Java 中獲取一個單詞在字串中重複的次數

我們可以計算單詞在給定字串中重複的次數。這裡的 randomText 是一個字串,我們需要在其中查詢單詞 blue 被重複多少次。為此,我們採用型別為 int 的變數 times 並將其初始化為 0。從 0 到 randomText 的長度執行一個 for 迴圈。

startsWith() 方法比較字串是否以給定字串的字元開頭。對於 i = 0randomText.substring(0) 方法在索引 0 處獲取子字串,並檢查它是否 startsWith("blue"),如果匹配,那麼它將把 times 增加 1,否則不增加。

類似地,它檢查其餘長度,並輸出給定字串中單詞重複的次數作為輸出。

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

    }
}

輸出:

The sky is blue it meets the sea which is also blue contains blue 2 times
Author: Rupam Yadav
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

相關文章 - Java String