如何检查一个string以数字开头?

我有一个包含字母数字字符的string。

我需要检查string是否以数字开头。

谢谢,

请参阅isDigit(char ch)方法:

http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Character.html

并使用String.charAt()方法将它传递给String的第一个字符。

 Character.isDigit(myString.charAt(0)); 

对不起,我没有看到你的Java标签,只是阅读问题。 自从我input了这些信息之后,我会把其他答案留在这里。

Java的

 String myString = "9Hello World!"; if ( Character.isDigit(myString.charAt(0)) ) { System.out.println("String begins with a digit"); } 

C ++

 string myString = "2Hello World!"; if (isdigit( myString[0]) ) { printf("String begins with a digit"); } 

正则expression式

 \b[0-9] 

一些certificate我的正则expression式的工作原理:除非我的testing数据是错误的? 替代文字160wpb4.png

我认为你应该使用一个正则expression式:

 import java.util.regex.*; public class Test { public static void main(String[] args) { String neg = "-123abc"; String pos = "123abc"; String non = "abc123"; /* I'm not sure if this regex is too verbose, but it should be * clear. It checks that the string starts with either a series * of one or more digits... OR a negative sign followed by 1 or * more digits. Anything can follow the digits. Update as you need * for things that should not follow the digits or for floating * point numbers. */ Pattern pattern = Pattern.compile("^(\\d+.*|-\\d+.*)"); Matcher matcher = pattern.matcher(neg); if(matcher.matches()) { System.out.println("matches negative number"); } matcher = pattern.matcher(pos); if (matcher.matches()) { System.out.println("positive matches"); } matcher = pattern.matcher(non); if (!matcher.matches()) { System.out.println("letters don't match :-)!!!"); } } } 

你可能想调整这个来接受浮点数,但是这对于负数是有效的。 其他答案不能用于否定,因为他们只检查第一个字符! 更具体的你的需求,我可以帮助你调整这种方法。

这应该工作:

 String s = "123foo"; Character.isDigit(s.charAt(0)); 
 System.out.println(Character.isDigit(mystring.charAt(0)); 

编辑:我search的Java文档,看string类的方法,可以让我的第一个字符&看字符类的方法,看看它是否有任何方法来检查这样的事情。

我想,你可以在提问之前也这样做。

EDI2:我的意思是,尝试做事情,阅读/find,如果你找不到任何东西 – 问。
我第一次发布时犯了一个错误。 isDigit是Character类的静态方法。

使用像^\d的正则expression式