我想写一个方法,将返回一个代码对应于我需要传递给Web服务的银行产品。我有一系列合格的通用类型的产品,输入将是一个字符串,它将成为数组中任何通用类型的特定类型。让我通过我已经有的代码来解释:最大匹配字符串
public static void main(String[] args)
{
String[] names = { "Checking", "Savings", "DEMAT", "DEMAT Savings", "Interest Checking" };
String input = "Employee Checking";
int min = Integer.MAX_VALUE;
String maxMatch = null;
for(String name : names)
{
int i = input.indexOf(name);
if(i > -1 && i < min)
{
min = i;
maxMatch = name;
}
}
if(null != maxMatch)
{
System.out.println("Maximum match for " + input + " found at " + maxMatch);
}
}
上面的代码片段试图执行输入的最大匹配。因此,如果我有“员工利益检查”作为输入,我会在“利息检查”中获得匹配,而不仅仅是“检查”。
我想知道的是,是否有任何方法可以进一步优化此代码段,或者是否存在代码失败的情况?
如果在名称中可能的匹配,[]是由长度排序,例如“兴趣检查”在“检查”之前出现,您不必与分钟进行比较。较长的比赛将首先自动发生。 – user949300