Sou novo no forum e estou com o seguinte problema:
Esse programa tem uma função: ler 30 numeros e os dividir em pares ou ímpares. A solução que eu achei foi criar dois vetores, uma para recer os pares e outros para os impares, mas se eu colocar um tamanho neles, na hora de imprimir os elementos do vetor, os indices que estiverem em branco, também são impressos, como faço para ele imprimir somente os indices que tem algo armazenado, ou então como crio um vetor que determine seu limite após ser preenchido??
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class numero3{
public static void main(String[] args){
BufferedReader dadEnt = new BufferedReader (new InputStreamReader(System.in));
int vi []= new int [30]; int ivi=0; // vetor impar, indice vetor par
int vp []= new int [30]; int ivp=0; // vetor par, indice vetor par
String n=""; // numero
double r=0; // resto
int n2=0;
System.out.println("Digite um valor:");
for (int i=0; i<30; i++){
try{
n= dadEnt.readLine();
n2= Integer.parseInt(n);}
catch (IOException ex){}
r=n2%2;
if(r==1){
vi[ivi]=n2;
ivi++;}
if(r==0){
vp[ivp]=n2;
ivp++;}
}
System.out.println("Impares digitados:");
for(ivi=0; ivi<vi.length;ivi++){
System.out.print(vi[ivi]+", ");}
System.out.println(" ");
System.out.println("Pares digitados:");
for(ivp=0; ivp<vp.length;ivp++){
System.out.print(vp[ivp]+", ");}
}
}