gpt4 book ai didi

java - 在高级数组列表中搜索字符串(Java)

转载 作者:行者123 更新时间:2023-11-29 04:53:41 26 4
gpt4 key购买 nike

我已经使用 .equals 方法在 ArrayList 中搜索字符串,但用户必须写下字符串的确切名称。有没有办法显示与包含的用户输入相匹配的字符串?例如,如果您搜索“Djang”,而您要查找的字符串是“Django”。

最佳答案

您应该查看 Levenshtein Distance .它测量一个字符串与另一个字符串的距离。甚至还有a Java implementation in Wikibooks .

然后,就是排序和寻找最小值的问题了。

list.stream()
.sort(Comparator.comparing(
s -> LevenshteinDistance.computeLevenshteinDistance(s, input))
.findFirst();

从那里,还可以进行过滤以添加可接受距离的上限,以防止所有输入返回结果。

list.stream()
.sort(Comparator.comparing(
s -> LevenshteinDistance.computeLevenshteinDistance(s, input))
.filter(s -> LevenshteinDistance.computeLevenshteinDistance(s, input) < limit)
.findFirst();

关于java - 在高级数组列表中搜索字符串(Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34501755/

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