java - 如何使用 java.util.scanner 显示建议列表

标签 java

大家早上好,

我正在尝试做一个简单的自动完成系统。

我有一个包含 40 个地名的列表。

我的目标是向用户显示所有以与他在键盘上输入的相同的前 3 个字母开头的名称。

目前,为此,我使用 java.util.Scanner

private String getEntry() {
    Scanner sc = new Scanner(System.in);
    return sc.nextLine();
}

因此,我需要一个“事件”或“监听器”来检测他何时输入了 3 个字母,以便找到并向他显示所有对应的位置,即使输入不完整也是如此。

或者,如果没有以输入的 3 个字符开头的地名,则不显示任何内容。

此外,如果他输入 4 个字母、5 个字母等,自动完成系统也必须正常工作并找到以相同 4 或 5 个首字母开头的所有名称。

可以这样做吗?

(我希望我的解释很清楚)。

非常感谢!

最佳答案

你必须用谷歌搜索神奇的结构:后缀树。它将有效解决您的问题。

PS,如果您只有 40 个名字 - 那么请使用完整扫描。对于这个小名字来说,它既简单又快捷。

关于java - 如何使用 java.util.scanner 显示建议列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50304687/

相关文章:

java - 某些单元格中的复选框,但不是全部,在特定列中 - JTable

java - 如何关闭 Java 代码某些部分的 Eclipse 代码格式化程序?

java - Ashot 屏幕截图无法正确裁剪屏幕截图中的元素

Java从父类获取子方法

java - 当被调用者成员发生序列化异常时,Hazelcast 调用者成员会抛出超时异常

java - 如何使用 Spring Security 以编程方式验证 `User` 并使用我的 `UserDetailsServie` 实现?

java - Jackson XML 解码和抽象类

java - 从 Jni 调用的 C++ 析构函数上的段错误

java - Spring REST Web 服务 appContext 失败

java - 如何查找项目所在的构建路径