单词个数程序死循环,帮忙看看

[复制链接]
查看11 | 回复3 | 2008-1-11 11:42:14 | 显示全部楼层 |阅读模式
就是不用while语句,你这样也不是得到每个单词的个数,而是得到每个字母的个数
回复

使用道具 举报

千问 | 2008-1-11 11:42:14 | 显示全部楼层
好麻烦的算法个人感觉应该有更简单的期待高手
回复

使用道具 举报

千问 | 2008-1-11 11:42:14 | 显示全部楼层
你是要求每个单词在短文中出现的次数还是求短文中单词的总数啊 ??
回复

使用道具 举报

千问 | 2008-1-11 11:42:14 | 显示全部楼层
一楼的你不会就不要瞎说,read()方法的作用:"下一个数据字节;如果已到达文件末尾,则返回 -1。"所以这个循环是绝对出的来的,死就死在"for(int i=0;i<buffer.length-1;i++)"这个里面.我感觉也不是死了,只不过循环太多,2个for就至少做了512*511次,然后还要while...吐...话说你这个代码从功能上看,只能得到字母的个数.根本不需要循环,直接用在FileInputStream in=new FileInputStream("English.txt"); 下面写个System.out.println(in.available()); 就可以了in.available()方法是io里面带的系统方法,返回int型,表示可以读取的字节数量.然后英文单词的一个char,正好是一个byte的长度,所以,直接用(已经测试通过)给你个完整的例子,IO可是要学好的啊:另外,需要try/catch就用,别搞个throws
import java.io.*;public classpinlv {
publicpinlv (){
}
public static void main(String[] args) {
FileInputStream in = null;
try {
in = new FileInputStream("English.txt");
System.out.println(in.available());
} catch (Exception ex) {
ex.printStackTrace();
}
}}附带送个完整的输入输出流例子给你import java.io.*;public class TestInputStream {
public static void main(String[] args) {
try {
// 写入文件
FileOutputStream out = new FileOutputStream("English.txt");
String s = "abcd";
out.write(s.getBytes());
out.close();
// 读取普通英文文件
FileInputStream in = new FileInputStream("English.txt");
int length = in.available();
for (int i = 0; i < length; i++) {
int temp = in.read();
System.out.print((char)temp);
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行