/** * @param elements values to join by the delimiter to make one line of text * @param delimiter delimiter to put between fields * @return one line of text, with RFC 4180 escaping (values with comma are quoted; double-quotes * are escaped by doubling) and using the given delimiter */ public static String joinDelimited(Iterable<?> elements, char delimiter) { return doJoinDelimited(elements, formatForDelimiter(delimiter)); }
/** * @param elements values to join by space to make one line of text * @return one line of text, formatted according to PMML quoting rules * (\" instead of "" for escaping quotes; ignore space surrounding values */ public static String joinPMMLDelimited(Iterable<?> elements) { String rawResult = doJoinDelimited(elements, formatForDelimiter(' ')); // Must change "" into \" return TWO_DOUBLE_QUOTE_ESC.matcher(rawResult).replaceAll(SLASH_QUOTE_ESC); }
/** * @param delimited line of delimited text * @param delimiter delimiter to split fields on * @return delimited strings, parsed according to RFC 4180 but with the given delimiter */ public static String[] parseDelimited(String delimited, char delimiter) { return doParseDelimited(delimited, formatForDelimiter(delimiter)); }
/** * @param delimited PMML-style space-delimited value string * @return delimited values, parsed according to PMML rules */ public static String[] parsePMMLDelimited(String delimited) { // Although you'd think ignoreSurroundingSpaces helps here, won't work with space // delimiter. So manually trim below. String[] rawResult = doParseDelimited(delimited, formatForDelimiter(' ')); List<String> resultList = new ArrayList<>(); for (String raw : rawResult) { if (!raw.isEmpty()) { resultList.add(raw); } } return resultList.toArray(EMPTY_STR_ARRAY); }
/** * @param elements numbers to join by space to make one line of text * @return one line of text, formatted according to PMML quoting rules */ public static String joinPMMLDelimitedNumbers(Iterable<? extends Number> elements) { // bit of a workaround because NON_NUMERIC quote mode still quote "-1"! CSVFormat format = formatForDelimiter(' ').withQuoteMode(QuoteMode.NONE); // No quoting, no need to convert quoting return doJoinDelimited(elements, format); }
/** * @param elements values to join by the delimiter to make one line of text * @param delimiter delimiter to put between fields * @return one line of text, with RFC 4180 escaping (values with comma are quoted; double-quotes * are escaped by doubling) and using the given delimiter */ public static String joinDelimited(Iterable<?> elements, char delimiter) { return doJoinDelimited(elements, formatForDelimiter(delimiter)); }
/** * @param delimited line of delimited text * @param delimiter delimiter to split fields on * @return delimited strings, parsed according to RFC 4180 but with the given delimiter */ public static String[] parseDelimited(String delimited, char delimiter) { return doParseDelimited(delimited, formatForDelimiter(delimiter)); }
/** * @param elements values to join by space to make one line of text * @return one line of text, formatted according to PMML quoting rules * (\" instead of "" for escaping quotes; ignore space surrounding values */ public static String joinPMMLDelimited(Iterable<?> elements) { String rawResult = doJoinDelimited(elements, formatForDelimiter(' ')); // Must change "" into \" return TWO_DOUBLE_QUOTE_ESC.matcher(rawResult).replaceAll(SLASH_QUOTE_ESC); }
/** * @param delimited PMML-style space-delimited value string * @return delimited values, parsed according to PMML rules */ public static String[] parsePMMLDelimited(String delimited) { // Although you'd think ignoreSurroundingSpaces helps here, won't work with space // delimiter. So manually trim below. String[] rawResult = doParseDelimited(delimited, formatForDelimiter(' ')); List<String> resultList = new ArrayList<>(); for (String raw : rawResult) { if (!raw.isEmpty()) { resultList.add(raw); } } return resultList.toArray(EMPTY_STR_ARRAY); }
/** * @param elements numbers to join by space to make one line of text * @return one line of text, formatted according to PMML quoting rules */ public static String joinPMMLDelimitedNumbers(Iterable<? extends Number> elements) { // bit of a workaround because NON_NUMERIC quote mode still quote "-1"! CSVFormat format = formatForDelimiter(' ').withQuoteMode(QuoteMode.NONE); // No quoting, no need to convert quoting return doJoinDelimited(elements, format); }