Нет, в JDK нет более эффективного/удобного способа, но многие библиотеки предоставляют вам готовые методы для этого, такие как Guava: Files.getFileExtension(fileName) который Files.getFileExtension(fileName) ваш код в один метод (с дополнительной проверкой).
На самом деле, существует новый способ думать о возврате расширений файлов в Java 8.
Большинство "старых" методов, описанных в других ответах, возвращают пустую строку, если расширение отсутствует, и хотя это позволяет избежать исключений NullPointerExceptions, легко забыть, что не все файлы имеют расширение. Возвращая Optional, вы можете напомнить себе об этом факте, а также можете сделать различие между именами файлов с пустым расширением (точка в конце) и файлами без расширения (без точки в имени файла)