检查字符串末尾是否存在整数?

时间:2017-11-11 10:24:07

标签: java

我想检查一下我的字符串末尾是否有一个数字,然后将这个数字(一个id)传递给我的函数。这就是我目前所意识到的:

{{1}}

错误:

  

java.lang.RuntimeException:错误:/ webapp / city / 1

2 个答案:

答案 0 :(得分:2)

您可以使用matches(...) method of String检查您的字符串是否与给定的模式匹配:

if (call.matches("/webapp/city/\\d+")) {
    ... //                      ^^^
        //                       |
        // One or more digits ---+
}

获得匹配后,您需要获取[2]的元素split,然后使用Integer.parseInt(...)方法将其解析为int

int id = Integer.parseInt(pathParts[2]);

答案 1 :(得分:1)

final String call = "http://localhost:8080/webapp/city/1";
int num = -1; //define as -1

final String[] split = call.split("/"); //split the line
if (split.length > 5 && split[5] != null) //check if the last element exists
    num = tryParse(split[5]); // try to parse it
System.out.println(num);

private static int tryParse(String num) 
{
    try 
    {
        return Integer.parseInt(num); //in case the character is integer return it
    } 
    catch (NumberFormatException e) 
    {
        return -1; //else return -1
    }
}