Allora ho risolto il problema semplicemente con un replace da ";" a "; " e tutto funziona.
Posto la funzione completa:

codice:
public static double[][] conversione2D(String a,String carattere,String car){
            String array[] = a.split(car);
            int misura = array.length;
            String mis = array[0].replace(carattere,carattere+" ");
            int misura2 = mis.split(carattere).length;
            double out[][]  = new double[misura][misura2];
            for(int i=0;i<misura;i++){
                String x[] = array[i].replace(carattere,carattere+" ").split(carattere);
                for(int j=0;j<misura2;j++){
                        try{
                            out[i][j] = Double.parseDouble(x[j]);
                        }catch (Exception e){
                            out[i][j]=0;
                        }
                }
            }
            return out;
    }
Ed anche un'altra per la conversione di stringhe in array double ad 1D

codice:
public static double[] conversione(String a,String carattere){
            a = a.replace(carattere, carattere+" ");
            String array[] = a.split(carattere);
            int misura = array.length;
            double out[]  = new double[misura];
            for(int i=0;i<misura;i++){
                try{out[i] = Double.parseDouble(array[i]);
                }catch (Exception e){ out[i]=0;}
            }
            return out;
        }