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);
}
}
上記のスニペットは、入力に対して最大の一致を実行しようとしています。だから私が "従業員の利子のチェック"を入力した場合、私は "チェック"だけでなく "利息のチェック"でマッチを得る。
私が知りたいことは、このスニペットをさらに最適化する方法があるかどうか、またはこのコードが失敗する場合があるかどうかです。
名に一致する可能性は、[]例えば、長さ順に並べた場合"Interest Checking"は "Checking"の前に来たので、minと比較する必要はありません。より長いマッチが自動的に最初に起こります。 – user949300