这样一个问题用你的方法解决难很多,你应该建两个 ArrayList 一个做所以出现过的单词保存,另一个做对应单词出现次数计数每次按空格分隔把一个单词提取出来,存进第一个 ArrayList 时先找一下里面是否已经有这个单词如果有了就在 第二个 ArrayList 里面对应位置的计数加一如果没有,则追加进去,同时 第二个ArrayList里对应位置设 1
这样循环,直到读完文本

解决方案 »

  1.   

    用Map,key保存单词,value保存出现次数
      

  2.   

    谢谢啊可是老师这样写啊所以郁闷啊~~
    有谁知道怎么把那些单词从txt文档读到string的一个数组里么?
    如果边读边筛选边存的话怎么实现啊?因为我觉得bufferedreader是一次只读一行,要想一直读要用个循环,或者是while啊,这样一来里面要是想往数组里面负值还得用循环吧?可是我这样弄的 总是错啊
      

  3.   

    网上现成的程序很多
    一般的做法是一个字符一个字符地读,如果读到字符是\n\r也就是说换行,就丢弃这个字符
    如果读到空格,用Character类的isWhitespace()来判断,就保存这个单词
    不然单词重复很简单,你把所有的单词都放在HashMap里面,这样也能统计出现的次数,而且不会重复给你点示意代码
    Hashmap result=new hashMap();
    String word=...//得到一个单词
    Object temp=result.get(word);
    if(temp==null) 
    {         ///没有这个单词
    result.put(word,new Integer(1));
    }
    else
    {         //有这个单词了,记数加一
    result.put(word,new Integer(temp.intValue()+1));
    }
    循环上面的代码保存进去最后转换成数组也比较简单
    得到最后的HaspMap result之后
    String [] final=(String [])(result.keySet().toArray(new String[0]));