场景
负责的一个报告系统中需要对2个有’重复’词的短语去重,这2个短语必须符合第一个末尾的若干个词和第2个开头的若干个词一样,示例:ABC和BCD。去重后ABCD才有意义,最后展示在报告上,特此记录。
环境
idea Java8
code
/**
* 抗疟疾能力 能力正常 => 抗疟疾能力正常
* @param name 抗疟疾能力
* @param value 能力正常
* @return 抗疟疾能力正常
*/
public static String trimTitle(String name, String value) {
String result = "";
if (StringUtils.isNotBlank(name) && StringUtils.isNotBlank(value)) {
char[] arr = name.toCharArray();
String temp;
int count = 0;
for (int i = arr.length - 1; i >= 0; i--) {
temp = name.substring(arr.length - 1 - count, arr.length);
if (temp.length() > value.length()) {
result = name + value;
break;
} else {
if (value.startsWith(temp)) {
result = name + value.substring(temp.length());
break;
}
}
count++;
}
if ("".equals(result)) {
result = name + value;
}
}
return result;
}