各位高手,这个是我写的一道题目的结果:题目是要求找一段英文文章存储为文本文件,并要求用到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();
}
}
}
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();
}
}
}
解决方案 »
- GUI改变组件观感
- applet中类路径如何指定
- 用java怎么求解质数?
- 关于java的问题
- 请问,JAVA程序怎么运行的?
- 异常啊!来看看啊!
- 请问:为什么我后来(原来的*.java文件经多次编译后)在文件夹里添加的*.jpg图片,再想加载就会抛出异常?
- 请教各位大侠:while语句中的条件判断语句为while(true){...},表示什么?在线等待。
- 为什么用sqlserver生成的创建表的sql语句中都不包含主键信息???
- 那里看Systen,out.println("good!");的显示结果
- SKTETEK公司的915M的ID 读卡器(M9的).java 怎么样去使用
- 我们的服务器在linux下!但是我们都是在windows下调试然后直接将class.ftp到linux
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;
split 这个方法 有这样的用法 我怎么不知道 查看JDK API也没这样的说法啊 怎么搞的 不懂 请指教.