7

我正在努力

String string = "123456";    
if(string.startsWith("[0-9]") && string.endsWith("[0-9]")){
                        //code
                    }

并且永远不会调用 if 子句。

4

5 回答 5

25

不要使用正则表达式:

Character.isDigit(string.charAt(0)) && 
                              Character.isDigit(string.charAt(string.length()-1))

(见Character.isDigit()

于 2013-08-02T14:37:48.583 回答
9

方法startsWith()endsWith()类中String只接受字符串,而不是正则表达式。

于 2013-08-02T14:36:48.063 回答
3

您可以使用:

String string = "123test123";
if(string.matches("\\d.*\\d"))
{
    // ...
}
于 2013-08-02T14:38:59.180 回答
3

您可以使用该matches方法String

public static void main(String[] args) throws Exception {
    System.out.println("123456".matches("^\\d.*?\\d$"));
    System.out.println("123456A".matches("^\\d.*?\\d$"));
    System.out.println("A123456".matches("^\\d.*?\\d$"));
    System.out.println("A123456A".matches("^\\d.*?\\d$"));
}

输出:

true
false
false
false
于 2013-08-02T14:39:15.090 回答
-1

请按照代码片段。

String variableString = "012testString";
Character.isDigit(string.charAt(0)) && variableString.Any(c => char.IsUpper(c));
于 2016-04-04T09:44:03.947 回答