簡體   English   中英

提取具有擴展名形式URL的文件名

[英]extracting filename with extension form URL

假設我有以下字符串

http://i2.kym-cdn.com/photos/images/original/000/748/132/b84.png

從中提取b84.png的最佳方法是什么? 我的程序將獲取圖像URL的列表,我想從每個URL中提取帶有擴展名的文件名。

我建議使用URI創建這樣的File

String url = "http://i2.kym-cdn.com/photos/images/original/000/748/132/b84.png";
URI uri = URI.create(url);
File f = new File(uri.getPath());

uri.getPath()僅返回url的路徑部分(即刪除方案,主機等)並產生以下內容:

/photos/images/original/000/748/132/b84.png

然后,您可以使用創建的File對象從完整路徑中提取文件名:

String fileName = f.getName();
System.out.println(fileName);

打印語句的輸出為: b84.png

但是,如果您根本不關心url的輸入格式,則子字符串答案會更簡潔。 我想我會提供另一種選擇。 希望能幫助到你。

嘗試,

String url = "http://i2.kym-cdn.com/photos/images/original/000/748/132/b84.png";
String fileName = url.subString(url.lastIndexOf("/")+1);
String[] urlArray=yourUrlString.split("/");
String fileName=urlArray[urlArray.length-1];

我認為,字符串lastIndexOf方法是提取文件名的最佳方法

String str = "http://i2.kym-cdn.com/photos/images/original/000/748/132/b84.png";
String result = str.substring(str.lastIndexOf('/')+1,str.length());

您可以嘗試-

 String url = "http://i2.kym-cdn.com/photos/images/original/000/748/132/b84.png"
 url = url.substring(url.lastIndexOf("."));

如果您不是png而不是.png,只需將最后一行更改為:

 url = url.substring(url.lastIndexOf(".") + 1);

最適合您的方法

public String Name(String url){
        url=url.replace('\\', '/');
        return  url.substring(url.lastIndexOf('/')+1,url.length());
    }

此方法返回任何目錄的任何文件名...出現錯誤,因為將“ \\”轉換為“ /”,所以不同目錄永遠不會出現問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM