应该是从java中给定url获取1231的通用方法

时间:2015-04-30 13:45:16

标签: java string

http://m.facebook.com/category/1231/messages”; 我想从指定的Url中获取1231。我有很多网址,我需要做同样的事情。我需要它的通用实现。

2 个答案:

答案 0 :(得分:2)

像这样:

URI uri = new URI("http://m.facebook.com/category/1231/messages");
String[] parts = uri.getPath().split("/");
String stringId = parts[parts.length-1];
int id = Integer.parseInt(stringId);

答案 1 :(得分:0)

如果模式总是那样: "http://m.facebook.com/category/"+number+"/messages"?并且您只需要获取数字,然后,您可以按如下方式提取它(根据this answer):

String url; // this is where the url is stored, from which you want to extract the number
int finalResult = Integer.parseInt(url.replaceAll("\\D", "")); //this removes from the url all the non-numeric characters and parses the resulting String to an Integer

这假设网址中出现的唯一数字是您要提取的数字。

<强>更新

如果id也可以是String,那么你可以这样做:

String tmpResult = url.substring(0, url.lastIndexOf("/"));
String finalResult = tmpResult.substring(tmpResult.lastIndexOf("/")+1);

更新2:

由于您不想使用lastIndexOf方法(出于某种原因),并且因为您可能会将String作为ID,所以您可以执行以下操作(使用MShaposhnik的答案):< / p>

String url; //the input
String finalResult; //the output
String[] split = url.split("/");
if (split.length > 2) {
    finalResult = split[split.length-2];
}