gpt4 book ai didi

java - 匹配两个文本文件之间的单词

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

我有两个文本文件。一个包含所有英文单词,另一个是网站上的用户名列表。

我想过滤掉与英语词典中的单词相同的用户名(例如“Envelope”)

这是我当前的代码,但它什么也没返回。我哪里出错了?

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

class dict{
public static void main(String args[]) throws Exception{

Scanner kb = new Scanner(System.in);
String name;
String curr;

java.io.File dictionary = new java.io.File("EnglishDict.txt");
Scanner dictScanner = new Scanner(dictionary);

java.io.File list = new java.io.File("usernames.txt");
Scanner listScanner = new Scanner(list);

while(dictScanner.hasNextLine()){
curr=dictScanner.next();
while(listScanner.hasNextLine()){
name=listScanner.next();

if(curr.equals(name)) System.out.println(name);
}
}
}
}

最佳答案

一旦用户名扫描程序到达该文件的末尾,就不会再读取用户名。理论上(!!)您必须重新启动(“倒回”)此顺序文本文件,以便将所有用户名与字典中的第二个、第三个等单词进行比较。

这将花费太长时间(除非用户名的数量相当少)。

将用户名(可能是较小的文件)读入Set<String>并根据该集合检查字典:

Set<String> usernames = new HashSet<>();
while (listScanner.hasNextLine()) {
usernames.add( listScanner.nextLine() );
}

while (dictScanner.hasNextLine()) {
String curr = dictScanner.nextLine();
if( usernames.contains( curr ){
System.out.println( curr );
}
}

关于java - 匹配两个文本文件之间的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25292595/

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