韩唐伯石 2020-11-19 19:59 采纳率: 55%
浏览 25
已结题

关于IOsystem reader里用split方法读取的问题?

老师留作业,要扫描一个文件并且将文件中的单词逐个添加进一个List<String>里去。那个文件每个单词占一行,我想用 .add(split("\n")[i])这个方法在一个循环里实现,但是我发现在\n处分割只能把第一个元素添加进List里,之后的全部没有。我用打印了一下split("\n").length,发现长度只有一。是因为read的扫描器只能扫描一行吗?

后面是代码,求教,谢谢!

public class WordFisher 
{
	public HashMap<String, Integer> vocabulary; 
	private List<String> stopwords;// (to be instantiated as an ArrayList)
	private String inputTextFile; 
	private String stopwordsFile; 
	
	public WordFisher(String inputTextFile, String stopwordsFile) throws IOException
	{
		this.inputTextFile = inputTextFile;
		this.stopwordsFile = stopwordsFile;
		stopwords = new LinkedList<String>();
		getStopwords();
	}
	
	private void getStopwords() throws IOException
	{
		try 
		{
			BufferedReader input = new BufferedReader(new FileReader(stopwordsFile));
			String read = input.readLine();
			int i = 0;
			String[] string = read.split("n");
			while(i < string.length)
			{
				stopwords.add(string[i]);
				i++;	
			}
			input.close();
			
			for(int k = 0; k < stopwords.size(); k++)
			{
				System.out.println(stopwords.get(k));
			}
		} 
		catch (FileNotFoundException e) 
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		}	
	}
}
  • 写回答

1条回答 默认 最新

  • 西安站 2020-11-19 22:36
    关注

    `input.readLine()` 这个方法就是读取一行的数据,

    而你文件每个单词一行, 应该按下面的来

    String line;
    while((line = input.readLine()) != null) {
        // do something with line
    }
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 8月7日
  • 已采纳回答 7月30日

悬赏问题

  • ¥15 linux驱动,linux应用,多线程
  • ¥20 我要一个分身加定位两个功能的安卓app
  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥100 求采集电商背景音乐的方法
  • ¥15 数学建模竞赛求指导帮助