Я пытаюсь определить, что является быстрым способа реализовать этот код:Самый быстрый способ решить, содержит ли строка только допустимые значения?
Pattern ID_REGEX = Pattern.compile("[A-Za-z0-9_\\-.]+");
boolean match = ID_REGEX.matcher(id).matches();
if (!match) throw new IllegalArgumentException("Disallowed character in ID");
Учитывая, что ID_REGEX постоянна, я предполагаю, что-то вроде BitSet или массива допустимых значений является самым быстрым способ реализовать это, может быть, даже просто огромную if-инструкцию.
Отметьте, что поиск осуществляется по A-Za-z, не Character.isLetter.
Дополнительная престижность для реализации ОССА
Я не понимаю. Вы имеете в виду без регулярного выражения в java? – Jason
Почему бы вам просто не написать тест, чтобы измерить его? –
Действительно ли это * производительность критическая? Имеет ли код, который у вас уже есть, не работает быстро * достаточно *? –