public String[] undeMerge(String[][] mat, String[] elemente) { Vector rez = new Vector(); boolean getOut = false; for (int i = 0; i < elemente.length; i++) { //unde merge element[i], merge in rez[i], daca nu merge nicaieri return; for (int j = 1; j < mat.length; j++) { if (mat[j][0].equals(elemente[i])) { if (mat[j][1] != null) { //Smecherie..daca e mai mare de 2 caractere il split-uim la doua if (mat[j][1].length() > 2) for (int j2 = 0; j2 < mat[j][1].length(); j2+=2) rez.add(mat[j][1].substring(j2,j2+2)); else { if (mat[j][1].equals("")) { getOut = true; break; } else rez.add(mat[j][1]); } //rez.add(mat[j][1]); } } } if (getOut) break; //daca nu e in lista il bagam in []sir for (int k = 0; k < rez.size(); k++) { boolean este = false; for (int j = 0; j < sir.size(); j++) { if (rez.get(k).equals(sir.get(j))) { este = true; } } if (!este) { sir.add(rez.get(k)); } } //undemerge(mat, rez[i]); if (getOut) return null; if (rez.get(i) != null) { String []temp = new String[rez.size()]; for (int j = 0; j < temp.length; j++) temp[j] = rez.get(j); // if getOut undeMerge(mat, temp); } else { String []s = new String[sir.size()]; for (int j = 0; j < s.length; j++) s[j] = sir.get(j); return s; } } String[] s = new String[sir.size()]; for (int i = 0; i < s.length; i++) s[i] = sir.get(i); return s; }