Как я узнаю, является ли первый символ строки числом?

Краткая информация

Scelbi-байта я детально изучал листинги исходного кода в этой книге много раз до, однажды, я внезапно программирование ассемблера grokked 8080.

107
задан Willi Mentzel 28 October 2015 в 16:31
поделиться

1 ответ

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].*")

Если условие не появляется в жестком цикле в вашей программе небольшое снижение производительности при использовании регулярных выражений вряд ли будет заметным.

258
ответ дан 24 November 2019 в 03:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: