private static void makeCsvRow(YailList row, StringBuilder csvStringBuilder) { String fieldDelim = ""; for (Object fieldObj : row.toArray()) { String field = fieldObj.toString(); field = field.replaceAll("\"", "\"\""); csvStringBuilder.append(fieldDelim).append("\"").append(field).append("\""); fieldDelim = ","; } }
// Requires: elements of rows are strings // TODO(sharon): do we want to enforce any consistency constraints here, e.g., // all rows have same number of elements? public static String toCsvTable(YailList csvList) { StringBuilder csvStringBuilder = new StringBuilder(); for (Object rowObj : csvList.toArray()) { makeCsvRow((YailList) rowObj, csvStringBuilder); // http://tools.ietf.org/html/rfc4180 suggests that CSV lines should be // terminated // by CRLF, hence the \r\n. csvStringBuilder.append("\r\n"); } return csvStringBuilder.toString(); }