Classe String

Galera preciso falar uma coisa aqui meio doido e não estou tendo um ideia de como fazer isso. Vou tentar explicar pra vê se alguem ai pode me ajudar.
tenho essa String: String nomeArquivo = "C:/Documents and Settings/student/Desktop/TesteB.zip";; preciso pegar a extensão do arquivo, isso foui facil fiz: String extensao = nomeArquivo.substring(nomeArquivo.length() - 3);. Mas agora preciso pegar apenas o nome do arquivo exemplo: “TesteB”, sem a extensão e sem o resto do endereço. Aquem ai tem uma idéia?
Grato…

existe um método chamado lastIndexOf na classe String :thumbup:

da um split pelo separator e pega a última ocorrência do vetor de Strings resultante, e depois separa a substring menos os 3 últimos dígitos, ou fazer outro split pelo ponto e pegar a primeira ocorrência.

Obs: o código abaixo não foi compilado, pode ter coisas erradas;
ex:

String[] arq = nomeArquivo.split(File.SEPARATOR);
String nomeTotal = arq[arq.length];


nomeTotal = nomeTotal.substring(0, nomeTotal.length() - 3);

ou
nomeTotal = nomeTotal.split(".")[0];
String nomeArquivo = "C:/Documents and Settings/student/Desktop/TesteB.zip";
// pegar a extensão  
nomeArquivo .substring(nomeArquivo .lastIndexOf("."), nomeArquivo .length()); 

// pega só o nome do arquivo.
nomeArquivo .substring(nomeArquivo .lastIndexOf("/"), nomeArquivo.lastIndexOf(".")); 

não testei, talvez tenha problemas na ER, pois usa “.” e “/”

é só mudar, ai fica com vc

abraços

Experimenta isso…


        String nomeArquivo = "C:/Documents and Settings/student/Desktop/TesteB.zip";  
        File fl = new File(nomeArquivo);
        String nomeExtensao = fl.getName();
        String nomeSemExtensao = nomeExtensao.substring(0,nomeExtensao.indexOf('.'));
        String somenteExtensao = nomeExtensao.substring((nomeExtensao.indexOf('.') + 1),nomeExtensao.length());
        

Muito obrigado leopoldof , e também muito obrigado a todos os outros que se preocupou em me ajudar. Esse Grupo é simplesmente nota MIL. parabens a todos. Valew