Voy a tratar de ser más claro.
Tú algoritmo está mal y es imposible que haga lo que quieres. Puedes tratar de explicar lo que crees que hace, pero no es lo que hace. Olvida lo que has hecho y parte de cero.
Cita: si encuentra un campo diferente a vacio entonces lo copia en registroTemp2[j], si por el contrario la sentencia es vacia se debe copiar en registroTemp2[j] campo vacio.
Liosa forma de decir, que vacío o no, se copie a registroTemp2. Resumiendo, tú quieres copiar un array completo en otro.
Por otro lado
Cita: Durante la ejecucion de bucle for, cada vez que encuentre un campo vacio o nulo se incrementa i, y se sigue corriendo el for. Ahora,cuando encuentra un campo diferente a vacio lo copia en registroTemp2[j], aqui es donde entra el indice j , y se incrementa j
Como te he dicho, la única razón para usar dos índices (j,i) sería que solo quisieses copiar los valores no vacíos, pero en ese caso te sobra el contenido del else, ya que repito, al no incrementar j, borras el último registro escrito de registroTemp2[] en cuanto en registro[] hay uno vacío.
Cita:
Iniciado por yuo2 Has intentado hacer un IF para el caso contraio del If ??
} else {
if (registro[i]= null && registro[i].equals("") ) {
}
¿Eso qué es? Lo que has puesto sería un NullPointerException
No entiendo nada de tu repuesta.