split no funciona correctamente

Estoy tratando de guardar los grupos en una cadena en una matriz para poder usarlos en variables individuales si es necesario. Para esto yo usodivisión pero por alguna razón, solo obtengo la cadena completa en la primera posición de la matriz: ultimate_array [0]. Si quiero usar ultimate_array [1], obtengo una excepción como "fuera de límites". ¿Tienes alguna idea de qué estoy haciendo mal?

String string_final = "";
String[] ultimate_array = new String[100];
String sNrFact = "";

string_final="Nrfact#$idfact1#$valfact1#$idfact2#$valfact2#$idfact3#$valfact3#$idfact4#$valfact4#$idfact5#$valfact5#$idfact6#$valfact6#$idfact7#$valfact7#$idfact8#$valfact8#$idfact9#$valfact9#$idfact10#$valfact10";

ultimate_array = string_final.split("#$");
sNrFact = ultimate_array[0];

Respuestas a la pregunta(4)

Su respuesta a la pregunta