How to check a string starts with numeric number?

前端 未结 6 2025
野趣味
野趣味 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 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.

提交回复
热议问题