一,問題描述:
給定一個字符串,統計該字符串中有多少個單詞。單詞以空格、回車、TAB鍵 分隔。
比如: " I come from \n china" 有4個單詞。
注意,字符串不一定以字母開頭,也可以從空格開頭。
二,實現思路:
使用一個 boolean isWhiteSpace用來標記當前字符所處的模式:比如,當前字符不是26個字母表中的字母時,說明 處在 ”空格模式“,即它是一個分隔符,而不是單詞。
只有當從空格模式轉化成 ”單詞模式 “時,計數增1。
三,代碼如下:
1 public class WordCount { 2 3 4 public static void main(String[] args) { 5 String s = " i come from china "; 6 int r = wordCount(s); 7 System.out.println(r); 8 } 9 10 //返回str中代表的單詞個數 11 public static int wordCount(String str){ 12 int count = 0; 13 boolean isWhiteSpace = true;//標記當前是否處在"空格"模式 14 for(int i = 0; i < str.length(); i++) 15 { 16 char c = str.charAt(i); 17 if(c == ' ' || c == '\t' || c == '\n')//如果碰到的是分隔符,else語句不會執行 18 isWhiteSpace = true; 19 else if(isWhiteSpace)//當碰到非分隔符,剛好且 處在 "空格"模式時,單詞計數加1 20 { 21 count++; 22 isWhiteSpace = false; 23 } 24 } 25 return count; 26 } 27 }