0

我正在用 Java 创建一个文字游戏以供练习。我有一个 txt 文件,其中包含英语中所有的四个字母单词。它们是长度分隔的,即从第一个字符开始的每第四个字符是单词的第一个字母。

检查字典中是否存在单词的好方法是什么?

4

1 回答 1

2

您可以将文件读入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"));
}
于 2013-03-30T11:12:47.670 回答