protected Collection splitString()

in src/main/java/org/apache/commons/configuration2/convert/DefaultListDelimiterHandler.java [118:163]


    protected Collection<String> splitString(final String s, final boolean trim) {
        final List<String> list = new LinkedList<>();
        StringBuilder token = new StringBuilder();
        boolean inEscape = false;

        for (int i = 0; i < s.length(); i++) {
            final char c = s.charAt(i);
            if (inEscape) {
                // last character was the escape marker
                // can current character be escaped?
                if (c != getDelimiter() && c != ESCAPE) {
                    // no, also add escape character
                    token.append(ESCAPE);
                }
                token.append(c);
                inEscape = false;
            } else if (c == getDelimiter()) {
                // found a list delimiter -> add token and
                // reset buffer
                String t = token.toString();
                if (trim) {
                    t = t.trim();
                }
                list.add(t);
                token = new StringBuilder();
            } else if (c == ESCAPE) {
                // potentially escape next character
                inEscape = true;
            } else {
                token.append(c);
            }
        }

        // Trailing delimiter?
        if (inEscape) {
            token.append(ESCAPE);
        }
        // Add last token
        String t = token.toString();
        if (trim) {
            t = t.trim();
        }
        list.add(t);

        return list;
    }