如何检查字符串以数字编号开头?

时间:2009-07-10 05:08:18

标签: java

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

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

谢谢,

6 个答案:

答案 0 :(得分:76)

请参阅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));

答案 1 :(得分:17)

抱歉,我没有看到你的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");
}

正则表达式

\b[0-9]

我的正则表达式的一些证明:除非我的测试数据有误? alt text

答案 2 :(得分:10)

我认为你应该使用正则表达式:


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 :-)!!!");
    }
  }
}

您可能需要调整此值以接受浮点数,但这适用于负数。其他答案不适用于否定因为他们只检查第一个字符!更具体地说明您的需求,我可以帮助您调整这种方法。

答案 3 :(得分:5)

这应该有效:

String s = "123foo";
Character.isDigit(s.charAt(0));

答案 4 :(得分:1)

System.out.println(Character.isDigit(mystring.charAt(0));
编辑:我搜索了java文档,查看了字符串类的方法,它可以让我获得第一个字符&amp;查看了Character类的方法,看看它是否有任何方法来检查这样的事情。

我想,你可以在问之前做同样的事情。

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

答案 5 :(得分:-3)

使用像^\d

这样的正则表达式