Существует ли хорошо известный алгоритм заполнения сетки с учетом набора точек?

Я был нетерпелив и решил не ждать ответов ... для справки не выглядит так сложно сделать что-то подобное (что работает для моего приложения, мне не нужно беспокоиться об экранированных кавычках, так как материал в кавычках ограничен несколькими ограниченными формами):

final static private Pattern splitSearchPattern = Pattern.compile("[\",]"); 
private List<String> splitByCommasNotInQuotes(String s) {
    if (s == null)
        return Collections.emptyList();

    List<String> list = new ArrayList<String>();
    Matcher m = splitSearchPattern.matcher(s);
    int pos = 0;
    boolean quoteMode = false;
    while (m.find())
    {
        String sep = m.group();
        if ("\"".equals(sep))
        {
            quoteMode = !quoteMode;
        }
        else if (!quoteMode && ",".equals(sep))
        {
            int toPos = m.start(); 
            list.add(s.substring(pos, toPos));
            pos = m.end();
        }
    }
    if (pos < s.length())
        list.add(s.substring(pos));
    return list;
}

(упражнение для читателя: расширение для обработки экранированных кавычек путем поиска обратных косых черт).

15
задан tskuzzy 23 July 2012 в 21:46
поделиться