Boa noite,
Erro bobo de iniciante. Alguém sabe o porque retorna um Exeption?
String servidor[]= emaildestinatario.split("@");
String var = servidor[1];
System.out.println(var);
String x[] = var.split(".");
System.out.println(x[0]);
Erro:
gmail.com
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at testeemailUtil.TesteEnvio.main(TesteEnvio.java:15)
Possívelmente você está passando um índice fora dos limites do array, ArrayIndexOutOfBoundsException.
O que tem na linha 15? E qual é o conteúdo da sua string emaildestinatario
?
O método split
recebe uma regex como argumento e retorna um array contendo os matches “ao redor” da regex. O exemplo da documentação: se você tem a string "foo:bar:baz"
, e chama split com o argumento ":"
, o resultado é o array ["foo", "bar", "baz"]
.
No seu caso, a regex é "."
. O ponto significa “qualquer caractere”. Basicamente todos os chars da string dão match, e o resultado é um array vazio. Por isso a linha System.out.println(x[0]);
dá throw numa ArrayIndexOutOfBoundsException
, o índice 0
não existe no array vazio.
Se você quer dar match literalmente no ponto, tem que fazer isso:
String x[] = var.split("\\.");
2 curtidas