各位高手,这个是我写的一道题目的结果:题目是要求找一段英文文章存储为文本文件,计算出这个文件含有多少个英文单词(提示:单词是用空格或者标点符号分隔开的英文字母)。虽然我这一条的算法可能还有点问题,但我想问的是在我打的感叹号标记的那一行的StringTokenizer的构造的第二个参数改成"\\s"就不行了,这个是为什么,难道"\\s"不是空格的正则表达式了吗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();
}
}
}
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();
}
}
}
解决方案 »
- 急 急 急 急 有一个非常重要的问题,希望各位路过的大神帮下忙······
- 聊天室私聊求思路`
- 求数据结构(java版)习题答案
- 连接Mysql数据库这个异常是什么意思呀,在线等谢谢了
- File.getAbsoluteFile什么作用和意思
- 求助:Excel文件的读取 与 相同位置的单元格数据 汇总
- 如何实现TreeSet的Comparator接口,急!!!我不会写
- 送分,我的jb6的new-> enterprise怎么变黑了?
- JBUILDER下编写的APPLET怎么在IE下运行?请求支援。
- java swing 调用dll后在窗口内切换输入法程序出现无响应!
- 我只会用myeclipse来开发jsp+javabean程序,开发gui要什么工具?
- java进度条问题求解
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;