How to check a string starts with numeric number?

前端 未结 6 2027
野趣味
野趣味 2021-02-06 20:44

I have a string which contains alphanumeric character.

I need to check whether the string is started with number.

Thanks,

相关标签:
6条回答
  • 2021-02-06 20:58

    See the isDigit(char ch) method:

    https://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Character.html

    and pass it to the first character of the String using the String.charAt() method.

    Character.isDigit(myString.charAt(0));
    
    0 讨论(0)
  • 2021-02-06 21:05

    I think you ought to use a regex:

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

    You may want to adjust this to accept floating point numbers, but this will work for negatives. Other answers won't work for negatives because they only check the first character! Be more specific about your needs and I can help you adjust this approach.

    0 讨论(0)
  • 2021-02-06 21:06
    System.out.println(Character.isDigit(mystring.charAt(0));
    

    EDIT: I searched for java docs, looked at methods on string class which can get me 1st character & looked at methods on Character class to see if it has any method to check such a thing.

    I think, you could do the same before asking it.

    EDI2: What I mean is, try to do things, read/find & if you can't find anything - ask.
    I made a mistake when posting it for the first time. isDigit is a static method on Character class.

    0 讨论(0)
  • 2021-02-06 21:07

    Sorry I didn't see your Java tag, was reading question only. I'll leave my other answers here anyway since I've typed them out.

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

    Regular expression:

    \b[0-9]
    

    Some proof my regex works: Unless my test data is wrong?

    0 讨论(0)
  • 2021-02-06 21:16

    This should work:

    String s = "123foo";
    Character.isDigit(s.charAt(0));
    
    0 讨论(0)
  • 2021-02-06 21:20

    Use a regex like ^\d

    0 讨论(0)
提交回复
热议问题