“http://m.facebook.com/category/1231/messages”; 我想从指定的Url中获取1231。我有很多网址,我需要做同样的事情。我需要它的通用实现。
答案 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];
}