单词词频统计,为什么出不来效果?

zhonghuaas 2013-12-21 12:52:49
分两个文件。一个是ReadTextFile.java。一个是ReadTextFileTest.java。后者包含main()。
第一个:
import java.io.File;
import java.io.FileNotFoundException;
import java.lang.IllegalStateException;
import java.util.NoSuchElementException;
import java.util.Scanner;

import java.util.ArrayList;
import java.util.List;
import java.util.Arrays;
import java.util.Collections;

public class ReadTextFile
{
private Scanner input;

public void openFile()
{
try
{
input = new Scanner (new File("clients.txt"));
}
catch(FileNotFoundException fileNotFoundException)
{
System.err.println("Error openning file.");
System.exit(1);
}
}

public void readRecords()
{
String[] x = { ""};
List<String> list1 = Arrays.asList(x);


while (input.hasNext())
{
list1.add(input.next());
}
int frequency = Collections.frequency(list1, "culture");
System.out.printf(
"\nFrequency of red in list1: %d\n",frequency);
}// end try

}
-------------------------
第二个:
public class ReadTextFileTest
{
public static void main(String[] args)
{
ReadTextFile application = new ReadTextFile();

application.openFile();
application.readRecords();
}
}
-----------------
...全文
177 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
genganpeng 2013-12-21
  • 打赏
  • 举报
回复

String[] x = { ""};
List<String> list1 = Arrays.asList(x);
楼主不知道你为什么要这样初始化 这样初始化是有问题的,asList获得是一个固定长度的List,你可以阅读API或者查看一下源代码,asList虽然返回的是一个List对象,但是其实内部是一个private final E[] a; 你可以这样初始化就可以了

List<String> list1 = new ArrayList<String>();
zhonghuaas 2013-12-21
  • 打赏
  • 举报
回复
謝謝。確實。換成ArrayList就可以了。奇怪!
nmyangym 2013-12-21
  • 打赏
  • 举报
回复
参考一下:http://javapub.iteye.com/blog/1551604
zhonghuaas 2013-12-21
  • 打赏
  • 举报
回复
还是不行。提升的错误信息也还是一样的。 是不是动态内存分配不行? 文本太长? 大概1000词左右。
nmyangym 2013-12-21
  • 打赏
  • 举报
回复
楼主试试把 hasNext() 换成 hasNextLine(), 把next()换成nextLine().
zhonghuaas 2013-12-21
  • 打赏
  • 举报
回复
Exception in thread "main" java.lang.UnsupportedOperationException at java.util.AbstractList.add(Unknown Source) at java.util.AbstractList.add(Unknown Source) at ReadTextFile.readRecords(ReadTextFile.java:37) at ReadTextFileTest.main(ReadTextFileTest.java:8) 运行后出现上述信息。 ------------- 我的思路就是把文件Clients.txt里的单词读入到Scanner input里。然后把input里的内容读到List<string> list1 中。 但没有得到预期的结果。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧