大家早上好,
我正在尝试做一个简单的自动完成系统。
我有一个包含 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/