Como eu pego a quantidade de linha e a quantidade de coluna ummatriz
tem?
Exemplo: m[][] = {{1,2},{3,4},{6,7}};
Como eu pego a quantidade de linha e a quantidade de coluna ummatriz
tem?
Exemplo: m[][] = {{1,2},{3,4},{6,7}};
Para saber o número de linhas e colunas é assim:
int m[][] = {{1,2},{3,4},{6,7}};
int linhas = 0;
int colunas = 0;
if (m.length > 0)
{
linhas = m.length;
colunas = m[0].length;
}
System.out.println("Colunas: " + colunas);
System.out.println("Linhas: " + linhas);
Explicação: para saber o número de linhas eu pego o dado da matriz que é length
que é o número da quantidade de linhas, após isso eu pego o índice
zero (0) da linha para achar o número de colunas também no seu lenght
.
Cuidado!!!
Nesse caso especifico eu sei o tamanho de cada item porque, ficou bem claro na demostração, ou seja, cada caso é um caso…
Muito obrigado!!!
Surgiu outra duvida, como eu troco null para zero?
Ex: n[][] = {{1},{3,4}};
output
1 0
3 4
Pergunto a você:
Como você vai colocar NULL
é uma posição que não existe? Lembre-se que eu coloquei na sua minha primeira resposta uma Cuidado !!!, lembra?
Então esse item não existe nem para colocar NULL
, mas, como todo programador presado que é você pode saber antes de ler as linhas e colunas as suas quantidades de itens dentro de uma linha e imprimir somente o que precisa:
Exemplo:
int n[][] = {{1},{3,4}};
int linhas = 0;
int colunas = 0;
if (n.length > 0)
{
linhas = n.length;
colunas = n[0].length;
}
for(int i = 0; i < linhas; i++)
{
colunas = n[i].length;
for(int j = 0; j < colunas; j++)
{
System.out.print(" " + n[i][j]);
}
System.out.println();
}
Output (Saida)
Mas, mesmo assim você me indaga novamente dizendo eu quero imprimir zeros aonde não tem a coluna, como proceder?
Simples: varre o array de linhas e verifique qual é o item com maior número de colunas, crie um nova matriz
com os itens de linha e colunas que foram encontrados?
Dessa forma:
int n[][] = {{1},{3,4}};
int linhas = 0;
int colunas = 0;
if (n.length > 0)
{
linhas = n.length;
colunas = n[0].length;
}
////////////////////////////////////////////////////
//encontrar o item com o maior
//numero de colunas
for(int i = 0; i < linhas; i++)
{
if (n[i].length > colunas)
{
colunas = n[i].length;
}
}
////////////////////////////////////////////////////
//novo array de valores normatizando
//o número de colunas
int n1[][] = new int[linhas][colunas];
for(int i = 0; i < linhas; i++)
{
colunas = n[i].length;
for(int j = 0; j < colunas; j++)
{
n1[i][j] = n[i][j];
}
}
////////////////////////////////////////////////////
//imprimir o novo array
linhas = n1.length;
colunas = n1[0].length;
for(int i = 0; i < linhas; i++)
{
for(int j = 0; j < colunas; j++)
{
System.out.print(" " + n1[i][j]);
}
System.out.println();
}
Output (Saida)
Mas, eu quero imprimir somente 0 para ilustração:
Exemplo:
int n[][] = {{1},{3,4}};
int linhas = 0;
int colunas = 0;
int total = 0;
if (n.length > 0)
{
linhas = n.length;
colunas = n[0].length;
}
////////////////////////////////////////////////////
//encontrar o item com o maior
//numero de colunas
for(int i = 0; i < linhas; i++)
{
if (n[i].length > total)
{
total = n[i].length;
}
}
//Imprimir os valores existentes
//e quanto tiver a quantidade de colunas a mais
//imprimir 0 só para ilustração
for(int i = 0; i < linhas; i++)
{
colunas = n[i].length;
for(int j = 0; j < colunas; j++)
{
System.out.print(" " + n[i][j]);
}
if (total > colunas)
{
for(int d = 0; d < (total-colunas); d++)
{
System.out.print(" 0");
}
}
System.out.println();
}
Um obrigação de um desenvolvedor: estude, estude e estude …
Quanto tempo: até seu último suspiro.
Valeu cara!!
Eu tento fazer alguns códigos para exercitar, esse que eu pedi, irei tentai fazer algo ainda melhor, como implementar mais coisas! uheauheahue
Você sabe onde tem contéudo grátis para estudar Java, que seja completo?