Alguém poderia me explicar o porque de em métodos como delete(int x,int y), replace(int x, int y) e substring(int x, int y) o índice inicial das variáveis ‘x’ começam do 0 e o índice inicial das variáveis ‘y’ começam do 1?
Por exemplo:
public class TestString3
{
public static void main(String [] args){
StringBuffer s = new StringBuffer("1234");
s.delete(0,1);
System.out.println(s);
}
}
O código acima gera como saída 234 (e não 34). Ou seja, para o primeiro parâmetro (0 neste caso) o primeiro índice inicial da string é considerado 0 e, para o segundo parâmetro (1 neste caso) o índice inicial da string é considerado 1 (e não 0). Qual a lógica de isso ser assim? Para mim seria mais lógico se ambos começassem do 0 (assim, o código acima retornaria apenas 34).
Desde já agradeço!