我有一组路径字符串:
/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
...
(通常路径比这长得多)
如您所见,很难立即注意到差异。这就是为什么我想突出显示字符串中的相关部分。
为了找到差异,我目前计算了所有字符串的公共前缀和后缀:
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
}
对于我使用的前缀StringUtils.getCommonPrefix
Commons Lang。
对于后缀,我找不到实用程序(在Commons和Guava中都没有,后者只有一个用于两个字符串)。所以我不得不自己写 - 类似于 Commons Lang 的那个。
我现在想知道,如果我错过了其中一个库中的某些功能 - 或者是否有一种使用 Java 8 流功能的简单方法?