我正在用 Java 创建一个文字游戏以供练习。我有一个 txt 文件,其中包含英语中所有的四个字母单词。它们是长度分隔的,即从第一个字符开始的每第四个字符是单词的第一个字母。
检查字典中是否存在单词的好方法是什么?
您可以将文件读入TreeSet
然后使用该contains
方法。对于Set
包含在恒定时间内运行。我添加了一个.toUpperCase()
转换,因此没有与案例相关的问题,这很容易.toLowerCase()
也是。
public static void main(String[] args) throws IOException {
final TreeSet<String> strings = new TreeSet<>();
try (final Reader reader = new InputStreamReader(new FileInputStream(
System.getProperty("user.home") + "/Downloads/words.txt"), "UTF-8")) {
final char[] buffer = new char[4];
int numRead = -1;
while ((numRead = reader.read(buffer)) > 0) {
strings.add(new String(buffer, 0, numRead).toUpperCase());
}
}
System.out.println(strings.contains("FLIP"));
System.out.println(strings.contains("JUMP"));
}