Como pegar a extensão de um arquivo

Estou tentando pegar a extensão do arquivo:

File teste = new File(p.getPath(), “slides” + java.io.File.separator + “slide1.jpg”);

Tentei de duas maneiras:

1:
if(teste.exists()){
String teste1 = “png”;
} else {
String teste1 = “jpg”;
}

2:
if (teste.getName().toLowerCase().endsWith(".png")) {
String teste1 = “png”;
} else {
String teste1 = “jpg”;
}

Vinicius.

Use “lastIndexOf” sobre o nome do arquivo e procure por “.”. Se achar, então efetue um substring a partir da próxima posição. Se não achar, o arquivo não tem extensão.

Use split!

String fileName = "blablabla.jpg";
String ext[] = fileName.split("\\."); /*tem as barras invertidas porque com expressões regulares o ponto é um caracter  especial...  Tem que "escapar"este caractere!*/
System.out.println("Extensao = " + ext[1]);

Falou!

ext[1] supõe que exista exatamente 1 ponto no nome. Se houver dois ou mais pontos, vai pegar a parte errada. Mesma coisa se não houver nenhum ponto (arquivo sem extensão).

[quote=thingol]ext[1] supõe que exista exatamente 1 ponto no nome. Se houver dois ou mais pontos, vai pegar a parte errada. Mesma coisa se não houver nenhum ponto (arquivo sem extensão).
[/quote]

Solução do Problema: [code]public class Extensao{

public static void main(String args[]){
	String fileName = "bla.bba.bl.a.jpg"; 
	String ext[] = fileName.split("\\."); 
	int i = ext.length;

	if(i > 1)
	  System.out.println("Extensao = " + ext[i-1]);  
}//main

}//split[/code]