Duvida sobre matriz

Olá pessoal sou novo aqui no fórum e no mundo do Java e estou com um problema em um código(exercício).
O código pede as dimensões de uma matriz, então devo digitar as linhas, e apos isso ele deve passar a diagonal principal e por fim dizer quantos números negativos ela possui.
Logo que eu digito a primeira linha (ex: 10_ 3_ 24) o erro ocorre: Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 1

‘’'public static void main(String[] args) {
Scanner input = new Scanner(System.in);

	int[][] mat; 
	int n, cont;
	
	System.out.printf("digite o numero de dimensões da matriz: ");
	n = input.nextInt(); 
	mat = new int[n][n]; 
	
	
	for(int i = 0; i<n; i++) {   
		String linha[] = input.next().split(" ");     
		for(int j = 0; j<n; j++) {    
		mat[i][j] = Integer.parseInt(linha[j]);           //o erro e apontado nesta linha
		}
	
	}
	
	System.out.println("diagonal principal: ");
	for(int i=0; i<n; i++) {
		System.out.println(mat[i][i] + " ");
	}
	cont = 0;
	for(int i=0; i<n; i++) {
		for(int j=0; j<n; j++) {
			if(mat[i][j] <0) {
				cont = cont++;
			}
		}
		
	}
		System.out.println("quantidade de negativos: " + cont);
}

}’’'
Alguém poderia explicar o motivo do erro e como resolve-lo?
Agradeço desde já!

Algo n está certo nisto ai. Ou sua mensagem ao usuário ou seu algoritmo.
int[n][n] é DUAS DIMENSÕES. Está perguntando ao usuário quantas dimensões quer, mas sempre cria com 2.

-> tamanho da matriz != dimensão da matriz

Tente assim:

for(int i = 0; i<n; i++) {   
	// String linha[] = input.next().split(" ");   
	System.out.println("Entre com " + n + " valores para preencher a linha " + i);
	for(int j = 0; j<n; j++) {    
		// mat[i][j] = Integer.parseInt(linha[j]);           //o erro e apontado nesta linha
		mat[i][j] = input.nextInt();
	}

}

As entradas podem ser separadas por espaço:

Entre com 3 valores para preencher a linha 0
10 3 24

ou individuais separadas por “enter”:

Entre com 3 valores para preencher a linha 1
10
3
24

conferi no exercício e realmente minha msg que esta errada, obrigado pela observação!

funcionou!
o curso que estou fazendo de orientação a objetos usa o c#, mas por já ter começado no java eu estou tentando aplicar os conceitos nele. O professor diz no vídeo para usar o split para separar por espaços, mas no java então não é necessário, estou certo?

Não sei como é em C#.

Neste caso não seria necessário, o next ou qualquer next* pega o próximo elemento até encontrar espaço ou final de linha. O nextLine retorna a String até o final da linha.

System.out.println("Next");
Scanner next = new Scanner("a b c");
System.out.println(next.next()); // retorna até espaço ou fim de linha
System.out.println(next.next()); // retorna até espaço ou fim de linha
System.out.println(next.next()); // retorna até espaço ou fim de linha

System.out.println("NextLine");
Scanner nextLine = new Scanner("a b c");
String entrada = nextLine.nextLine(); // retorna a linha inteira
System.out.println(entrada);
String[] split = entrada.split(" "); // split
System.out.println(split[0]);
System.out.println(split[1]);
System.out.println(split[2]);

entendi! Valeu!