我想寫一個方法,將返回一個代碼對應於我需要傳遞給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