如何确定字符串的第一个字符是否为数字?

在Java中,有没有一种方法可以确定字符串的第一个字符是否为数字?

一种方法是

string.startsWith("1")

并一直执行到9点,但这似乎效率很低。

回答:

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)将引发StringIndexOutOfBoundsExceptionstartsWith没有这个问题。

要使整个条件只占一行,并避免长度检查,可以将正则表达式更改为以下内容:

s.matches("\\d.*")

// or the equivalent

s.matches("[0-9].*")

如果条件没有出现在程序的紧密循环中,则使用正则表达式对性能的影响很小。

以上是 如何确定字符串的第一个字符是否为数字? 的全部内容, 来源链接: utcz.com/qa/403060.html

回到顶部