gpt4 book ai didi

java - 如何将单词存储到数组/数组列表中而不会出现重复的单词

转载 作者:行者123 更新时间:2023-12-02 09:33:05 25 4
gpt4 key购买 nike

对于我正在制作的这个程序,我需要从 txt 文件中读取句子 ex.(Tom is fast) 并将单词存储到数组/列表中。我遇到的困难是能够不重复单词,并为数组中的单词位置、每个句子中单词的位置以及单词总数创建数组。一旦我完成了数组,我必须让用户询问他们想要查看哪个句子并将其打印出来。

import java.util.*; 
import java.io.*;

public class CSC240_Week1MsgMapping
{
public static void main(String[] args) throws IOException
{
Scanner kb = new Scanner(System.in);
System.out.print("Enter name of a file");
String filename = kb.nextLine();
File file = new File(filename);
Scanner inputFile = new Scanner(file);
ArrayList<String> msgs = new ArrayList<String>();

while(inputFile.hasNext())
{
msgs.add(inputFile.nextLine());

最佳答案

当我尝试不重复列表中的对象时,我总是使用 HashMap因为它有 contains(Object ob)返回 true 的方法如果HashMap已经有对象 ob这对您的情况很有用。

就您而言,我建议您使用 HashMap<String,ArrayList<Integer>> String将是某个单词,ArrayList<Integer>将是该单词的所有位置的列表。

此外,在插入单词之前,您会检查它是否已经在您的 HashMap 中。通过使用map.contains(word)方法,如果该单词存在,您只需将位置添加到 ArrayList与该词相关map.get(word).add(position) ,如果该单词不存在,则意味着您需要将该单词添加到 HashMap然后继续添加其位置。

最后,要获取某个单词的计数,您只需使用 size() ArrayList的方法(例如:map.get(word).size())。

关于java - 如何将单词存储到数组/数组列表中而不会出现重复的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57779723/

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