Prezados, bom dia.
A minha dúvida é sobre o Vetor String[] abaixo.
O código é um exemplo de um livro. Porém gostaria de saber como o vetor está recebendo as strings sem ter sido inicializado?
Ele não deveria ser inicializado como algo do tipo: String[] separador = new String[10] ou String[] separador = {“One”,“Two”,“Three”}?
Como ele consegue funcionar normalmente assim, simplesmente desse jeito"String[] separador = Token.split("/");"…qual a lógica? hehe
se você iterar sobre o array separador, vai obter :
posição 0 = 20
posição 1 = 09
posição 2 = 2010
Espero ter ajudado.
InsaneChess
Hum…Então é o próprio método split que determina o tamanho do indice do vetor?
E
entanglement
Mais ou menos.
Há um overload do método split que permite indicar o tamanho máximo desse array, caso desejado.
De modo geral, o método split cria um array e o dimensiona conforme necessário.
(Olhando o fonte de java.lang.String.split, vê-se que ele chama java.util.Pattern.split. Esse método, por sua vez, simplesmente cria um ArrayList e depois de fazer tudo que é necessário, converte esse ArrayList em um String[] ).
ViniGodoy
InsaneChess:
Hum...Então é o próprio método split que determina o tamanho do indice do vetor?
Sim. Você pode imaginar uma implementação rudimentaríssima de um método split assim:
PS: Essa é uma implementação tosquíssima, de baixa performance e que não trabalha com Regex. A do split certamente é muito mais inteligente que isso.
Mas note que aí no meio, cedo ou tarde, houve um new em String[]