Erro ao tentar imprimir um Array de String

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