如何判断字符串的第一个字符是否是数字?

2023-12-21

在Java中有没有办法找出字符串的第一个字符是否是数字?

一种方法是

string.startsWith("1")

一直这样做到9点,但这似乎效率很低。


Character.isDigit(string.charAt(0))

注意这将允许any统一码数字 http://java.sun.com/javase/6/docs/api/java/lang/Character.html#isDigit(char),而不仅仅是 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) and substring(0, 1)会抛出一个StringIndexOutOfBoundsException. startsWith没有这个问题。

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

s.matches("\\d.*")
// or the equivalent
s.matches("[0-9].*")

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何判断字符串的第一个字符是否是数字? 的相关文章

随机推荐