在 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 = 0
,randomText.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
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