Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida substring

Olá pessoal,

Estou com uma dúvida com relação ao substring. Nesse exemplo do javadoc da oracle se o índice começa com 0 e termina com 8, porque quando passamos o índice 9 ele retorna em branco?

"emptiness".substring(9) returns "" (an empty string)
2 respostas

Na documentação diz que só lança exceção se for passado um valor negativo ou maior do que o LENGTH da string e não necessariamente o index máximo.

IndexOutOfBoundsException - if beginIndex is negative or larger than the length of this String object.

[especulação] Como não tem nada naquele index, ele não devo retornar nada

Isso é oque eu consigo compreender a partir da documentação.

solução!

Olá, Paulo e Bruno!

Como o Bruno disse, a documentação diz:

IndexOutOfBoundsException - if beginIndex is negative or larger than the length of this String object.

Ou seja tem que ser maior que o tamanho da String. No exemplo que deu na documentação, emptiness tem 9 letras. Quando você usa substring(9) ele não dá erro pq é o tamanho da String, mas não tem nada para retornar.

Se você fizer substring(10), ele lança a exception.