gpt4 book ai didi

java - 集合框架来统计一个文件

转载 作者:行者123 更新时间:2023-11-30 07:38:17 26 4
gpt4 key购买 nike

我正在使用 MSDOS 来传输文件。我正在尝试编写一个程序来计算每个单词对在文本文件中出现的次数。一个词对由两个连续的词组成(即一个词和紧随其后的词)。本段首句中,“counts”和“how”是一对词。

我想让程序做的是接受这个输入:

abc def abc ghi abc def ghi jkl abc xyz abc abc abc ---

应该产生这个输出:

abc:
abc, 2
def, 2
ghi, 1
xyz, 1

def:
abc, 1
ghi, 1

ghi:
abc, 1
kl, 1

jkl:
abc, 1

xyz:
abc, 1

顺便说一句:我排除了与单词对无关的“a”、“the”、“and”..

最好的方法是什么?请保持友善,我是 java 的新手..这是我目前所拥有的..

import java.util.Scanner;
import java.util.ArrayList;
import java.util.TreeSet;
import java.util.Iterator;
import java.util.HashSet;

public class Project1
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
String word;
String grab;
int number;

// ArrayList<String> a = new ArrayList<String>();
// TreeSet<String> words = new TreeSet<String>();
HashSet<String> uniqueWords = new HashSet<String>();

System.out.println("project 1\n");

while (sc.hasNext())
{
word = sc.next();
word = word.toLowerCase();

if (word.matches("a") || word.matches("and") || word.matches("the"))
{
}
else
{
uniqueWords.add(word);
}

if (word.equals("---"))
{
break;
}
}

System.out.println("size");
System.out.println(uniqueWords.size());

System.out.println("unique words");
System.out.println(uniqueWords.size());

System.out.println("\nbye...");
}
}

抱歉格式化。很难把它放在这里......

最佳答案

如何使用 map :

Map<String, List<String>> words = new HashMap<String, List<String>>();

map 中的键是唯一的词,每个值都是跟在该唯一词之后的词列表。数据结构可能如下所示:

Key    |    Value
--------------------------
abc | def, ghi, jkl
def | jkl, mno

关于java - 集合框架来统计一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2060334/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com