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; }
public QuotedStringTokenizer(String stringToTokenize, String quoteChars, boolean includeQuotes, String delimiters, boolean includeDelimiters) { delegate = new StringTokenizer(stringToTokenize==null ? "" : stringToTokenize, (delimiters==null ? DEFAULT_DELIMITERS : delimiters), true); this.quoteChars = quoteChars==null ? DEFAULT_QUOTE_CHARS() : quoteChars; this.includeQuotes = includeQuotes; this.delimiters = delimiters==null ? DEFAULT_DELIMITERS : delimiters; this.includeDelimiters = includeDelimiters; updateNextToken(); }
public static boolean hasOpenQuote(String stringToCheck) { return hasOpenQuote(stringToCheck, DEFAULT_QUOTE_CHARS); }
public List<String> buildList(String stringToTokenize) { return new QuotedStringTokenizer(stringToTokenize, quoteChars, includeQuotes, delimiterChars, includeDelimiters).remainderAsList(); }
public synchronized String nextToken() { if (peekedNextToken==null) throw new NoSuchElementException(); String lastToken = peekedNextToken; updateNextToken(); return includeQuotes ? lastToken : unquoteToken(lastToken); }
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 List<String> remainderAsList() { List<String> l = new ArrayList<String>(); while (hasMoreTokens()) l.add(nextToken()); return l; }
public QuotedStringTokenizer build(String stringToTokenize) { return new QuotedStringTokenizer(stringToTokenize, quoteChars, includeQuotes, delimiterChars, includeDelimiters); } public List<String> buildList(String stringToTokenize) {
protected synchronized void updateNextToken() { peekedNextToken = null; String token; do { if (!delegate.hasMoreTokens()) return; token = delegate.nextToken(); //skip delimeters } while (!includeDelimiters && token.matches("["+delimiters+"]+")); StringBuffer nextToken = new StringBuffer(token); pullUntilValid(nextToken); peekedNextToken = nextToken.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()) { result.append(tokenizer.quoteToken(entry.getKey())); if (entry.getValue() != null) result.append("="+tokenizer.quoteToken(entry.getValue())); result.append(", "); } if (result.length() > 0) result.deleteCharAt(result.length()-1); return result.toString(); }
Map<String,String> result = new LinkedHashMap<String,String>(); QuotedStringTokenizer tokenizer = new QuotedStringTokenizer(line, null, true, ",", false); while (tokenizer.hasMoreTokens()) { String token = tokenizer.nextToken().trim(); String unquotedKey = tokenizer.unquoteToken(token); result.put(unquotedKey, null); String unquotedKey = tokenizer.unquoteToken(token.substring(0, index).trim()); String unquotedVal = tokenizer.unquoteToken(token.substring(index+1).trim()); result.put(unquotedKey, unquotedVal); String unquotedKey = tokenizer.unquoteToken(token.substring(0, index).trim()); result.put(unquotedKey, "");
private void pullUntilValid(StringBuffer nextToken) { while (hasOpenQuote(nextToken.toString(), quoteChars) && delegate.hasMoreTokens()) { //keep appending until the quote is ended or there are no more quotes nextToken.append(delegate.nextToken()); } }