我想要str.startsWith(一个数字)的结果,
我写的:
String patten = "[0-9]";
String a="90832aviriver jfiejo";
if(a.startsWith(patten))
{
System.out.print("right");
}
else
System.out.print("can't recognize");结果是can't recognize,不知道怎么实现这个功能?

解决方案 »

  1.   

    split()好用的,startsWith()不行,还是我写的问题呢?
      

  2.   

    startsWith()的参数就是一个普通的字符串,不是正则,所以你写成正则的形式,它也会用[0-9]这个字符串(长度为5)判断str开始的字符是不是[0-9]
    String patten = "[0-9]"; 
    String a="[0-9]90832aviriver jfiejo"; 
    if(a.startsWith(patten)) 

    System.out.print("right"); 

    else 
    System.out.print("can't recognize"); 
    用这个验证一下。
      

  3.   


    String reg = "^\\d"; // ^表示字符串开始,\\d表示数字
    String a = "90832aviriver jfiejo";
    System.out.println(Pattern.matches(reg, a));
      

  4.   

    startsWith方法根本就没涉及到正则,所以当然不能用[0-9]来匹配啦·~
      

  5.   

    那就写完整 String reg = "^\\d.*?$"; // ^表示字符串开始,\\d表示数字 .*?匹配任意字符 $字符串结束3楼的正则在 javascript 里都能通过,在JAVA里居然是 false,我也觉得奇怪
      

  6.   

    谢谢楼上的,这样问题就解决了,hoho……