private String buildDocumentString(List<ParseTreeNode> trees) { StringBuilder buffer = new StringBuilder(); for (ParseTreeNode tree : trees) { List<ParseTreeNode> terminals = getTerminalNodes(tree); for (ParseTreeNode terminal : terminals) { if (terminal.word != null) { buffer.append(terminal.word); while (buffer.length() < terminal.end) { buffer.append(' '); } } } // set last character to newline if (buffer.charAt(buffer.length() - 1) == ' ') { buffer.setCharAt(buffer.length() - 1, '\n'); } } return buffer.toString(); }