Android获取URL中文件的扩展名的方法

如果你要是想从字符串是截取那就是想找找 最后一个. 在哪个地方,然后再再去找 . 后面的字符,但Android提供了一个方法可以直接获取。

android.webkit 包中

String ext = MimeTypeMap.getFileExtensionFromUrl(String url);

原代码是这样的:

 /**
     * Returns the file extension or an empty string iff there is no
     * extension. This method is a convenience method for obtaining the
     * extension of a url and has undefined results for other Strings.
     * @param url
     * @return The file extension of the given url.
     */
    public static String getFileExtensionFromUrl(String url) {
        if (!TextUtils.isEmpty(url)) {
            int fragment = url.lastIndexOf('#');
            if (fragment > 0) {
                url = url.substring(0, fragment);
            }

            int query = url.lastIndexOf('?');
            if (query > 0) {
                url = url.substring(0, query);
            }

            int filenamePos = url.lastIndexOf('/');
            String filename =
                0 <= filenamePos ? url.substring(filenamePos + 1) : url;

            // if the filename contains special characters, we don't
            // consider it valid for our matching purposes:
            if (!filename.isEmpty() &&
                Pattern.matches("[a-zA-Z_0-9\\.\\-\\(\\)\\%]+", filename)) {
                int dotPos = filename.lastIndexOf('.');
                if (0 <= dotPos) {
                    return filename.substring(dotPos + 1);
                }
            }
        }

        return "";
    }


其实他写的程序也是通过字符串的处理来做到的,不过他已经写好了我们直接用就是了。

你可能感兴趣的:(扩展名,url)