各位高手,这个是我写的一道题目的结果:题目是要求找一段英文文章存储为文本文件,并要求用到StringBuffer计算出这个文件含有多少个英文单词(提示:单词是用空格或者标点符号分隔开的英文字母),但是我怎么想也用不到StringBuffer,还有我无法把逗号的问题考虑进去,希望哪个大哥帮帮我?
import java.io.*;
import java.util.*;
public class CalculateWordNums
{
  public static int calculateWordNums(String fileName) throws FileNotFoundException, IOException
  {
    FileReader fr = new FileReader(fileName);
    BufferedReader br = new BufferedReader(fr);
    //int b = 0;
    int count = 0;
    String str = null;
    while((str = br.readLine()) != null)
    {
      StringTokenizer st = new StringTokenizer(str, " ");  //!!!!!!!!!!!!!!!!!!!!!!!!!
      while(st.hasMoreTokens())
      {
        str = st.nextToken();
        if (Character.isLetter(str.charAt(0)))
          count++;
      }
    }    return count;
  }  public static void main(String[] args)
  {
    try
    {
      int nums = calculateWordNums("novel.txt");
      System.out.println(nums);
    }
    catch (FileNotFoundException e) {}
    catch (IOException e)
    {
      e.printStackTrace();
    }
  }
}

解决方案 »

  1.   

            FileReader   fr   =   new   FileReader(fileName); 
            BufferedReader   br   =   new   BufferedReader(fr); 
            //int   b   =   0; 
            int   count   =   0; 
            String   str   =   null; 
            String   string="";
            while((str   =   br.readLine())   !=   null) 
            { 
                //StringTokenizer   st   =   new   StringTokenizer(str,   "   ");     //!!!!!!!!!!!!!!!!!!!!!!!!! 
                  //while(st.hasMoreTokens()) 
                //{ 
                //    str   =   st.nextToken(); 
                //    if   (Character.isLetter(str.charAt(0))) 
                //        count++; 
                //} 
                string+=str;
            } 
            count=string.split("[\\s\\W]+").length;
      

  2.   

    count=string.split("[\\s\\W]+").length;
    split 这个方法 有这样的用法 我怎么不知道 查看JDK API也没这样的说法啊 怎么搞的 不懂 请指教.