Comando split

pessoal estou tentando fazer um split, coisa ridícula mas ta dando um erro mais ridículo ainda…

o valor de String para file é “grande.mp3”

aqui vai o código:

String[] unmountFile = file.split(".");//desmonta nome do arquivo

String unExtensionFile = unmountFile[0];//pega parte do arquivo sem extensao

System.out.println(unExtensionFile);

o erro:

Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 0
at servercontrol.oniObserver.codeFile(oniObserver.java:84)
at servercontrol.oniObserver.askReceived(oniObserver.java:75)
at servercontrol.Main.main(Main.java:54)
[1]+ Killed java -jar serverControl.jar

Nunca me ocorreu algo do tipo, é certeza que existe o indice 0!

o mais estranho… se eu troco o valor de split de “.” para por exemplo “m”, funciona!

tipo, o que o ponto tem haver com o erro? não dá pra dar split com o ponto?

Oi Fabio!

Dá uma olhada no método split la no javadoc:

http://java.sun.com/javase/6/docs/api/java/lang/String.html#split(java.lang.String)

Repare que ele não recebe uma String qualquer como argumento mas sim uma expressão regular. E o ponto é um caracter especial na regex (para mais detalhes veja a classe Formatter).

Para fazer o que você quer, precisa escapar o ponto:

String[] split = minhaString.split("\.");

[]'s

Oi,

Split usa expressão regular.

Coloque “\.” ou então split(Pattern.quote ("."));

Tchauzin!

muito obrigado!! demais :slight_smile: