2014-09-03 3 views
0

У меня есть этот URL-адрес: http://xxx.xxx.xx.xx/resources/upload/2014/09/02/new sample.pdf, который будет преобразован в http://xxx.xxx.xx.xx/resources/upload/2014/09/02/new%20sample.pdf.Как разделить оставшуюся часть URL-адреса с последнего его пути

Теперь я могу получить последний путь по:

public static String getLastPathFromUrl(String url) { 
    return url.replaceFirst(".*/([^/?]+).*", "$1"); 
} 

, который даст мне new sample.pdf

, но как я могу получить остальные из URL: http://xxx.xxx.xx.xx/resources/upload/2014/09/02/ ?

+0

Как насчет [ 'IndexOf()'] (http://docs.oracle.com/javase/7/docs/ api/java/lang/String.html # indexOf (java.lang.String)) и ['подстрока'] (http://docs.oracle.com/javase/7/docs/api/java/lang/String. HTML # подстрока (интермедиат,% 20int))? –

ответ

3

Легче способ получить последний путь из URL будет использовать функцию String.split, как это: -

String url = "http://xxx.xxx.xx.xx/resources/upload/2014/09/02/new sample.pdf"; 
String[] urlArray = url.split("/"); 
String lastPath = urlArray[urlArray.length-1]; 

Это превращает ваш URL в массив, который затем может быть использован во многих отношениях. Существуют различные способы получения url-lastPath, одним из способов может быть присоединение к указанному выше массиву с использованием ответа this. Или использовать LastIndexOf() и подстроки, как это: -

String restOfUrl = url.substring(0,url.lastIndexOf("/")); 

PS: - Хотя вы можете узнать что-то, делая это, но я думаю, лучшим решением было бы заменить пространство на% 20 в полной строке адреса, что было бы самым быстрым и имело бы больше смысла.

+0

Я уже успешно заменил каждое пустое пространство на% 20, а также получил последний путь к URL ТОЛЬКО.Я хочу получить оставшуюся часть URL-адреса, а не последний путь. –

0

Я не уверен, если я правильно понял, но когда вы говорите

У меня есть этот файл URL: URL/нового sample.pdf, который будет преобразован в URL/новое% 20sample.pdf позже.

Похоже, вы пытаетесь заменить «пространство»% 20 на URL-адрес или простыми словами, пытаясь позаботиться о нежелательных символах в URL-адресе. Если это то, что вам нужно, используйте предварительно построенный

URLEncoder.encode (String url, String enc), вы можете использовать UTF-8 в качестве кодировки.

http://docs.oracle.com/javase/7/docs/api/java/net/URLEncoder.html

Если вам действительно нужно разбить его, предполагая, что вы заинтересованы в URL после HTTP: //, удалить HTTP: // и взять магазин оставшиеся URL в строке переменной с именем сказать remainingURL. затем используйте

Список myList = новый ArrayList (Arrayys.asList (осталосьURL.split ("/")));

Вы можете перебирать myList, чтобы получить фрагменты URL.

+0

Я только успешно удалил последний путь к URL, я хочу, чтобы остальная часть всего URL-адреса, а не последний путь. –

0

Я нашел его:

File file=new File("http://xxx.xxx.xx.xx/resources/upload/2014/09/02/new sample.pdf"); 
    System.out.println(file.getPath().replaceAll(file.getName(),"")); 

Выход: http://xxx.xxx.xx.xx/resources/upload/2014/09/02/

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