2016-12-31 48 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

這可能會失敗,因爲正如我所提到的,我的鏈接不斷變化,字符的長度和數量 –