我有一個永不改變的鏈接。唯一改變的是文件名(粗體)。所以如何從這個鏈接獲取文件名?我想在一個TextView顯示此或toast-如何提取字符串的特定部分?
http://apkins.aptoide.com/
aptoide-8.1.0.1.apk?=x
我有一個永不改變的鏈接。唯一改變的是文件名(粗體)。所以如何從這個鏈接獲取文件名?我想在一個TextView顯示此或toast-如何提取字符串的特定部分?
http://apkins.aptoide.com/
aptoide-8.1.0.1.apk?=x
String given = "http://apkins.aptoide.com/aptoide-8.1.0.1.apk?=x";
String extractedAppName = given.substring(given.lastIndexOf("/") + 1, given.lastIndexOf("?"));
這應該工作。它需要在名稱前面的/
的位置,然後是?
的位置。它需要這兩個字符之間的字符串(子字符串)。試試看,你會看到。
這應該做的伎倆
String fileName = url.substring(url.lastIndexOf('/') + 1);
您也可以嘗試URLUtil.guessFileName(url, null, null)
編輯1
String url = "any url"
這裏是一個正則表達式少的解決方案:
public static String getFileName(String link) {
int endIndex = link.lastIndexOf('?');
return link.substring(26, endIndex);
}
這很簡單。它首先得到文件名結尾的位置,即最後一個「?」的位置。然後它從第27個字符開始到文件名結尾「從鏈接中刪除」一個新字符串。
和我的答案一樣。 – creativecreatorormaybenot
@creativecreatorormaybenot如果文件名包含「?」,則不會工作。因爲你使用'indexOf'而不是'lastIndexOf'。 – Sweeper
這可能會失敗,因爲正如我所提到的,我的鏈接不斷變化,字符的長度和數量 –
我已經發布了類似的答案...爲什麼不只是評論? – creativecreatorormaybenot
正忙着打字。沒有看到你的。對不起,我沒有足夠的代表來評論 – slyidiot
URLUtil.guessFileName(url,null,null)聽起來有趣 –