2016-12-31 90 views
1

我有一个永不改变的链接。唯一改变的是文件名(粗体)。所以如何从这个链接获取文件名?我想在一个TextView显示此或toast-如何提取字符串的特定部分?

http://apkins.aptoide.com/aptoide-8.1.0.1.apk?=x

回答

1
String given = "http://apkins.aptoide.com/aptoide-8.1.0.1.apk?=x"; 
String extractedAppName = given.substring(given.lastIndexOf("/") + 1, given.lastIndexOf("?")); 

这应该工作。它需要在名称前面的/的位置,然后是?的位置。它需要这两个字符之间的字符串(子字符串)。试试看,你会看到。

1

这应该做的伎俩

String fileName = url.substring(url.lastIndexOf('/') + 1); 

您也可以尝试URLUtil.guessFileName(url, null, null)

编辑1

String url = "any url" 
+0

我已经发布了类似的答案...为什么不只是评论? – creativecreatorormaybenot

+0

正忙着打字。没有看到你的。对不起,我没有足够的代表来评论 – slyidiot

+0

URLUtil.guessFileName(url,null,null)听起来有趣 –

1

这里是一个正则表达式少的解决方案:

public static String getFileName(String link) { 
    int endIndex = link.lastIndexOf('?'); 
    return link.substring(26, endIndex); 
} 

这很简单。它首先得到文件名结尾的位置,即最后一个“?”的位置。然后它从第27个字符开始到文件名结尾“从链接中删除”一个新字符串。

+0

和我的答案一样。 – creativecreatorormaybenot

+0

@creativecreatorormaybenot如果文件名包含“?”,则不会工作。因为你使用'indexOf'而不是'lastIndexOf'。 – Sweeper

+0

这可能会失败,因为正如我所提到的,我的链接不断变化,字符的长度和数量 –