gpt4 book ai didi

java - 在字符串集合中查找相关部分

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:40:43 24 4
gpt4 key购买 nike

我有一组路径字符串:

/content/example-site/global/library/about/contact/thank-you.html
/content/example-site/global/corporate/about/contact/thank-you.html
/content/example-site/countries/uk/about/contact/thank-you.html
/content/example-site/countries/de/about/contact/thank-you.html
/content/example-site/others/about/contact/thank-you.html
...

(通常路径比这长得多)

如您所见,很难立即注意到差异。这就是为什么我想突出显示字符串中的相关部分。

为了找到差异,我目前计算所有字符串的公共(public)前缀和后缀:

String prefix = getCommonPrefix(paths);
String suffix = getCommonSuffix(paths);
for (String path : paths) {
String relevantPath = path.substring(prefix.length(), path.length() - suffix.length());
// OUTPUT: prefix + "<b>" + relevantPath + "</b>" + suffix
}

对于前缀,我使用 Commons LangStringUtils.getCommonPrefix

对于后缀,我找不到实用程序(在 CommonsGuava 中都找不到,后者只有一个用于恰好两个字符串)。所以我不得不自己写一个——类似于 Commons Lang 的那个。

我现在想知道,如果我错过了其中一个库中的某些功能 - 或者是否有使用 Java 8 流功能的简单方法?

最佳答案

这里有一个小 hack,我并不是说它是最佳的也不是什么都不是,但是如果没有其他选项可用,遵循这条路径可能会很有趣:

String[] reversedPaths = new String[paths.length];
for (int i = 0; i < paths.length; i++) {
reversedPaths[i] = StringUtils.reverse(paths[i]);
}
String suffix = StringUtils.reverse(StringUtils.getCommonPrefix(reversedPaths));

关于java - 在字符串集合中查找相关部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33849458/

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