Dúvida em adicionar um carácter '$' no final do vetor

import java.util.Scanner;
/Faça um programa que leia N letras e armazene cada uma em uma posição de memória. Coloque no vetor, após
a última letra lida, o caracter “$”, indicando final dos caracteres
/

public class exerDezesseis {

	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		
		int quant;
		
		System.out.println("Qual o tamanho do vetor?");
		quant = s.nextInt();
		
		char vetCarac[] = new char[quant+1];
		char carac;
		
		
		for(int i=0; i<vetCarac.length-1;i++){
			System.out.println("Digite a letra");
			carac = s.next().charAt(0);
			vetCarac[i]= carac;
		}
		
		
		vetCarac[vetCarac.length] = '$';
		for(int i=0; i<vetCarac.length;i++){
			
			System.out.println("A letras digitadas foram: " + vetCarac[i]);
		}
		
	}

}

Está dando erro de Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 4

amigão

vetCarac.length é o tamanho de qual array? vetCarac certo?

se isso é 4, o vetor vai ate 3, certo?

use quant+1 que vai dar certinho

Então, já usei o quant + 1, mas mesmo assim estoura. =(

vetCarac[quant+1] = ‘$’;
for(int i=0; i<vetCarac.length;i++){

		System.out.println("A letras digitadas foram: " + vetCarac[i]);
	}

Viajei

Use quant

O +1 vai te dar o mesmo problema

Deu certo, muito obrigado. Mas não consigo entender o porque deu certo.
Digamos que eu digitei que o tamanho do vetor será 5.
Daí criarei um vetor do tamanho 5+1, correto?

Mas quando digo que vetCarac[quant], ele não recebe o 5?
O quando coloco quant+1, quant que valia 5, passa a ser 6?

Exato