最近公司有个特殊场景,根据终端客户、销售组、预计成交日期、商机状态(进行中)进行判断唯一,要求在选择产品时给出系统中已存在的最接近的产品。
初步的写一个测试代码:
package com.puke.test;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import org.junit.Test;
public class ListTest {
public List<String> init(){
List<String> list = new ArrayList<String>();
list.add("BeneView T5");
list.add("beda");
list.add("DC-8");
list.add("DC-7");
list.add("BeneView T8");
list.add("BeneView T6");
list.add("BeneView T7");
list.add("BeneVision N15");
list.add("CeneVision N15 ftyguiojkp");
return list;
}
public String fun(String select){
List<String> init = init();
List<String> list = new ArrayList<>();
String p;
for (String product : init) {
if (select.length() > product.length()) {
for (int i = 1; i <= product.length(); i++) {
if (select.substring(0, i).equalsIgnoreCase(product.substring(0, i))) {
list.add(product.substring(0, i));
}
}
}else{
for (int i = 1; i <= select.length(); i++) {
if (select.substring(0, i).equalsIgnoreCase(product.substring(0, i))) {
list.add(product.substring(0, i));
}
}
}
}
int max = 0;
if (list.size() > 0) {
for (int i = 1; i <= list.size()-1; i++) {
if (list.get(i).length() > list.get(max).length()) {
max = i;
}
}
for (String product : init) {
if (product.contains(list.get(max))) {
return product;
}
}
}
return "";
}
@Test
public void Mytest(){
String fun = fun("DC");
System.out.println(fun);
}
}