public QuotedStringTokenizer build(String stringToTokenize) { return new QuotedStringTokenizer(stringToTokenize, quoteChars, includeQuotes, delimiterChars, includeDelimiters); } public List<String> buildList(String stringToTokenize) {
public static int getWordCount(String phrase, boolean respectQuotes) { if (phrase==null) return 0; phrase = phrase.trim(); if (respectQuotes) return new QuotedStringTokenizer(phrase).remainderAsList().size(); else return Collections.list(new StringTokenizer(phrase)).size(); }
public static String toLine(Collection<String> parts) { QuotedStringTokenizer tokenizer = new QuotedStringTokenizer("", false); StringBuilder result = new StringBuilder(); for (String part : parts) { result.append(tokenizer.quoteToken(part)+", "); } if (result.length() > 0) result.deleteCharAt(result.length()-1); return result.toString(); }
public static String toLine(Map<String, String> parts) { QuotedStringTokenizer tokenizer = new QuotedStringTokenizer("", true); StringBuilder result = new StringBuilder(); for (Map.Entry<String, String> entry : parts.entrySet()) { if (result.length()>0) result.append(", "); result.append(tokenizer.quoteToken(entry.getKey())); if (entry.getValue() != null) result.append("="+tokenizer.quoteToken(entry.getValue())); } return result.toString(); }
public List<String> buildList(String stringToTokenize) { return new QuotedStringTokenizer(stringToTokenize, quoteChars, includeQuotes, delimiterChars, includeDelimiters).remainderAsList(); }
public static List<String> parseList(String line) { List<String> result = new ArrayList<String>(); QuotedStringTokenizer tokenizer = new QuotedStringTokenizer(line, null, true, ",", false); while (tokenizer.hasMoreTokens()) { result.add(tokenizer.unquoteToken(tokenizer.nextToken().trim())); } return result; }
Map<String,String> result = new LinkedHashMap<String,String>(); QuotedStringTokenizer tokenizer = new QuotedStringTokenizer(line, null, true, ",", false);
/** as {@link #unwrapJsonishListIfPossible(String)} but throwing errors * if something which looks like a string or set of brackets is not well-formed * (this does the work for that method) * @throws IllegalArgumentException if looks to have quoted list or surrounding brackets but they are not syntactically valid */ public static List<String> unwrapOptionallyQuotedJavaStringList(String input) { if (input==null) return null; MutableList<String> result = MutableList.of(); String i1 = input.trim(); boolean inBrackets = (i1.startsWith("[") && i1.endsWith("]")); if (inBrackets) i1 = i1.substring(1, i1.length()-1).trim(); QuotedStringTokenizer qst = new QuotedStringTokenizer(i1, "\"", true, ",", false); while (qst.hasMoreTokens()) { String t = qst.nextToken().trim(); if (isWrappedInDoubleQuotes(t)) result.add(unwrapJavaString(t)); else { if (inBrackets && (t.indexOf('[')>=0 || t.indexOf(']')>=0)) throw new IllegalArgumentException("Literal square brackets must be quoted, in element '"+t+"'"); result.add(t.trim()); } } return result; } }
private void testResultingTokens(String input, String quoteChars, boolean includeQuotes, String delimiterChars, boolean includeDelimiters, String... expectedTokens) { QuotedStringTokenizer tok = new QuotedStringTokenizer(input, quoteChars, includeQuotes, delimiterChars, includeDelimiters); testResultingTokens(input, tok, expectedTokens); }