读取前100个字符串数组,java i / o

时间:2013-12-06 05:02:15

标签: java arrays string

我是从朋友那里被引导到这个网站的。目标是读取txt文件中的前100个字符串,并计算这些单词出现的次数并将其打印出来。 非常感谢你提前。我在代码方面做得很好,但由于某些原因,这让我很难过。

import java.util.Arrays;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;


public class Program6 {

public static void main(String[] args) throws FileNotFoundException {
WordAnalysis a = new WordAnalysis();
a.ReadFile();
    }}
class WordAnalysis{
    String[] coun = new String[1000];
    int[] ana = new int[100];

    void ReadFile() throws FileNotFoundException {
         Scanner read = new Scanner(new File("myths.txt")); 
         int[] ana = new int[100];
         String coun = new String(); 
         String word=null;

    while(read.hasNext()) {
        word = read.next();             
        String[] arrWord = word.split(" ");
    }
 }
 }

3 个答案:

答案 0 :(得分:3)

步骤:

    1:通过Scanner
中的nextLine()读取行[0,99]
    2:与另一台扫描仪分开,然后使用next()获取每个单词。或者,您可以使用拆分。
    3:将每个单词放在HashMap(String,Integer)中,其中String是单词,Integer是它出现的次数
    4:遍历HashMap并打印出键值对

答案 1 :(得分:1)

选中此处,我在这里使用地图来保持字数。

    int count = 0;
    HashMap<String, Integer> wordCntMap = new HashMap();
    while (read.hasNext()) {
        count++;
        word = read.next();
        String[] arrWord = word.split(" ");
        if (count == 100) {
            break;
        }
        for (String str : arrWord) {
            Integer num = wordCntMap.get(str);
            if (num == null) {
                wordCntMap.put(str, new Integer(1));
            } else {
                wordCntMap.put(str, num + 1);
            }
        }
    }
    System.out.println("Word Count " + wordCntMap);

答案 2 :(得分:0)

欢迎来到Stack Overflow,其中没有任何答案太愚蠢,也没有任何评论过于轻率。

但是,您还没有完成编写此代码。 : - )

既然你已经在arrWord中使用了单词,那么你需要开始使用某种结构来跟踪每个单词以及它被看到的次数。

有很多容器可以让你使用字符串作为键,使用整数作为值。为了您的目的,使用哪一个并不重要。

对于arrWord中的每个单词,看看你是否可以在你的结构中找到它(Dictionary,Hashmap,等等)。如果找不到'word',请插入[word,1]的新条目。如果你能找到'word',那么递增你找到的计数器。

完成后,您需要做的就是为结构中的每个条目打印出键值对。

HTH!