Краткая информация
Scelbi-байта я детально изучал листинги исходного кода в этой книге много раз до, однажды, я внезапно программирование ассемблера grokked 8080.
Character.isDigit(string.charAt(0))
Обратите внимание, что это разрешит любую цифру Unicode , а не только 0-9. Вы можете предпочесть:
char c = string.charAt(0);
isDigit = (c >= '0' && c <= '9');
Или более медленные решения с регулярными выражениями:
s.substring(0, 1).matches("\\d")
// or the equivalent
s.substring(0, 1).matches("[0-9]")
Однако при использовании любого из этих методов вы должны сначала убедиться, что строка не пуста. Если это так, то charAt (0)
и substring (0, 1)
вызовут исключение StringIndexOutOfBoundsException
. startWith
не имеет этой проблемы.
Чтобы сделать все условие одной строкой и избежать проверки длины, вы можете изменить регулярные выражения следующим образом:
s.matches("\\d.*")
// or the equivalent
s.matches("[0-9].*")
Если условие не появляется в жестком цикле в вашей программе небольшое снижение производительности при использовании регулярных выражений вряд ли будет заметным.