gpt4 book ai didi

java - 查找按字典顺序排序的字符串的子集,其中包含以相同模式开头的 unicode 字符

转载 作者:行者123 更新时间:2023-12-02 08:05:00 24 4
gpt4 key购买 nike

我需要根据起始模式在一个非常国际化的项目中找到名称的子集(所有拉丁字符都可能)。例如:

"more, moreover", "morse"

使用模式 more 将返回前两个元素。到目前为止,我使用了具有基本字符串排序的 TreeSet (即使用 String-s compareTo),并使用此代码进行模式匹配:

        String end = start.substring(0, start.length()-1) + (char)(start.charAt(start.length()-1) + 1);
SortedMap<String, Long> matching= empIndexByName.subMap(start, end);

换句话来说:我用 int 值将最后一个字母替换为下一个字母,并使用 moremorf 查询 subMap。如果是非 ASCII 字符,这当然会失败。例如,如果搜索表达式以 é 结尾,则 é+1 不是 f。这两个问题是我需要将字符串与不同地区的不同字母进行比较,并以某种方式确定字母表中的下一个字符。
除了编写我自己的代码表之外,还有什么方法可以使用基本的java(javase5)来做到这一点? (或者有什么好的国际图书馆吗?我已经听说过 ICU。)

最佳答案

用于此任务的最佳数据结构是 suffix tree 。初始化后,该树将让您快速找到以给定字符序列开头的所有单词。这也是相对简单的一段代码。

关于java - 查找按字典顺序排序的字符串的子集,其中包含以相同模式开头的 unicode 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8327082/

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