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

2025-05-16 20:43:42
推荐回答(5个)
回答1:

一楼的你不会就不要瞎说,read()方法的作用:"下一个数据字节;如果已到达文件末尾,则返回 -1。"所以这个循环是绝对出的来的,死就死在"for(int i=0;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 class pinlv {

public pinlv (){
}

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);
}

回答2:

就是不用while语句,你这样也不是得到每个单词的个数,而是得到每个字母的个数

回答3:

你那算法不对!它是从头到尾把每个单词在后面出现的次数打出来,好多重复了!
while(a!=-1)一直是真.

回答4:

你是要求每个单词在短文中出现的次数还是求短文中单词的总数啊 ??

回答5:

好麻烦的算法 个人感觉应该有更简单的 期待高手