public ArrayList getNumberedSteps() { int max = steps.split("\n").length; int[] tab = new int[max]; for (int i = 0; i < max; i++) tab[i] = 0; ArrayList result = new ArrayList(); for (String step : steps.split("\n")) { int p = 0; String numbers = ""; while((step.charAt(p))== '\t') { p++; } tab[p]++; for (int i = p + 1; i < max; i++) tab[i] = 0; StringBuilder bufferedText = new StringBuilder(step); for(int i = 0; i < p + 1; i++) { numbers = numbers + tab[p] + "."; } bufferedText.insert(p,numbers); step = bufferedText.substring(0); result.add(step); } return result; }