java - 如何将文本文件存储到数组中并计算其中有多少个单词

标签 java arrays sorting

我有一个作业,其中我需要计算文件中的单词数并输出有多少单词是相同的。就像整个文本中的“a”可能重复了350次。我希望你明白我的意思。

现在,我尝试做一些测试并创建一个文件(“test.txt”),其中包含:

Im a good boy
Hello World
A happy world it is

我想做的是将其存储到一个数组中,以便能够计算文件中的单词数。但我很难过。这就是我到目前为止所得到的。

void readFile() {
    System.out.println("Gi navnet til filen: ");
    String filNavn = sc.next();

    File k = new File(filNavn);
    try {
        Scanner sc2 = new Scanner(k);
        while (sc2.hasNextLine()) {
            String line = sc2.nextLine();
            String[] m = line.split(" ");
            String x = m[0];

            System.out.println(x);
        }  
    } catch (FileNotFoundException e) {
        System.out.print("mmm");
    }
}

但这仅输出该行的第一个单词。

我想看到的内容与文本文件相同。而是存储在数组中。我该怎么做?

Im a good boy
Hello World
A happy world it is 

最佳答案

因此,这只会打印出第一个单词

String[] m = line.split(" ");
String x = m[0];
System.out.println(x);

在这里,您仅将数组中的第一个单词(由拆分创建)分配给变量 x,然后仅打印该单词。

要打印所有单词,您需要像这样循环数组

for(int i = 0; i < m.length; i++)
{
     System.out.println(m[i]);
}

要打印与文件相同的内容,您可以使用System.out.print()。请注意,您需要将空格放回原处,并考虑新行。以下是一种方法:

for(int i = 0; i < m.length; i++)
{
     if(i == m.length - 1)
         System.out.print(m[i] + "\n");
     else
         System.out.print(m[i] + " ");
}

关于java - 如何将文本文件存储到数组中并计算其中有多少个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19104225/

相关文章:

java - 如何使用 Graphics2D 类绘制字符串?

java - 动态条件语句

linux - 如何在 Linux 中只打印目录中最大的文件?

java - 定期更改 JButton 文本

java - java中迭代列表的各种方法的性能评估

c++ - 搜索已排序的 float 数组

arrays - 字符数组到 Swift 中的字符串

arrays - 生成伪语言的 C 程序 - 全局 3D 数组太大(段错误)?

java 按成绩、名称对成绩进行排序

linux - 根据linux中的字符位置排序