Character.isDigit(string.charAt(0))
Należy pamiętać, że this will allow any Unicode digit, a nie tylko 0-9. Może wolisz:
char c = string.charAt(0);
isDigit = (c >= '0' && c <= '9');
Albo wolniejszych regex rozwiązania:
s.substring(0, 1).matches("\\d")
// or the equivalent
s.substring(0, 1).matches("[0-9]")
jednak z żadnej z tych metod, należy najpierw upewnić się, że łańcuch nie jest pusty. Jeśli tak, to i substring(0, 1)
rzucają StringIndexOutOfBoundsException
. startsWith
nie ma tego problemu.
Aby cały stan jedną linię i uniknąć kontroli długości, można zmieniać regexes do poniższego:
s.matches("\\d.*")
// or the equivalent
s.matches("[0-9].*")
Jeśli warunek nie pojawia się w ciasnej pętli w programie, małej przeboju wydajności korzystanie z wyrażeń regularnych prawdopodobnie nie będzie zauważalne.
miałem zamiar wymienić regex sposób, ale bałem się, że gdybym to zrobił, można byłoby pokusić się spróbować. –