Сначала я хочу убедиться, что вы не можете определить, к какому файлу относится ссылка URI, поскольку ссылка, заканчивающаяся .jpg
, может позволить вам получить доступ к файлу .exe
(это особенно верно для URL, из-за символических ссылок и файлов .htaccess), поэтому не является надежным решением для извлечения расширения real из URI, если вы хотите ограничить допустимые типы файлов, если это то, что вы ' собирается конечно. Итак, я предполагаю, что вы просто хотите знать, какое расширение у файла на основе его URI, хотя это не вполне заслуживает доверия;
Расширение можно получить по любому URI, URL или пути к файлу, используя метод, приведенный ниже. Вам не нужно использовать какие-либо библиотеки или расширения, так как это базовая функциональность Java. Это решение получает позицию последнего знака .
(точка) в строке URI и создает подстроку, начинающуюся с позиции знака периода, заканчивающейся в конце строки URI.
String uri = "http://www.google.com/support/enterprise/static/gsa/docs/admin/70/gsa_doc_set/integrating_apps/images/google_logo.png";
String extension = uri.substring(uri.lastIndexOf("."));
В этом примере кода выше будет выведено расширение .png
из URI в переменной extension
, обратите внимание, что .
(точка) включено в расширение, если вы хотите собрать расширение файла без период с префиксом, увеличьте индекс подстроки на единицу, например так:
String extension = uri.substring(url.lastIndexOf(".") + 1);
Один из профессионалов за использование этого метода над регулярными выражениями (метод, которым часто пользуются другие люди), заключается в том, что он намного дешевле ресурсов и намного менее труден для выполнения, давая тот же результат.
Кроме того, вы можете убедиться, что URL-адрес содержит символ точки, для этого используйте следующий код:
String uri = "http://www.google.com/support/enterprise/static/gsa/docs/admin/70/gsa_doc_set/integrating_apps/images/google_logo.png";
if(uri.contains(".")) {
String extension = uri.substring(url.lastIndexOf("."));
}
Возможно, вы захотите еще улучшить функциональность, чтобы создать более надежную систему. Два примера могут быть:
- Проверьте URI, проверив его существование или убедившись, что синтаксис URI действителен, возможно, с использованием регулярного выражения.
- Обрежьте расширение, чтобы удалить ненужные пробелы.
Я не буду рассказывать о решениях для этих двух функций здесь, потому что это не то, о чем в первую очередь спрашивали.
Надеюсь, это поможет!