Я пытаюсь написать метод, который вернет мне код, соответствующий банковскому продукту, который мне нужно передать в веб-службу. У меня есть массив подходящих универсальных типов продуктов, и входными данными будет строка, которая будет конкретным типом любого из универсальных типов в массиве. Позвольте мне объяснить это с помощью кода, который у меня уже есть:
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);
}
}
Приведенный выше фрагмент пытается выполнить максимальное совпадение для ввода. Итак, если я использую «Проверка интереса сотрудников» в качестве входных данных, я получаю совпадение в «Проверка интереса», а не только «Проверка».
Я хочу знать, есть ли способ дальнейшей оптимизации этого фрагмента или есть ли случаи, когда этот код не работает?