2016-12-31 6 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)

Edit 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

Это может быть неудачно, поскольку, как я уже упоминал, моя ссылка продолжает меняться, то же самое относится к длине и количеству символов –

Смежные вопросы