public static Map<String, List<String>> strTokenizerForMore(String str, String rep, String need) {
        Map<String, List<String>> map = new HashMap<String, List<String>>();
        List<String> mappingList = new ArrayList<String>();
        StringTokenizer parser = new StringTokenizer(str, rep, true);
        StringBuffer newSqlBuffer = new StringBuffer();
        String token = null;
        String lastToken = null;
        while (parser.hasMoreTokens()) {
            token = parser.nextToken();
            if (rep.equals(lastToken)) {
                if (rep.equals(token)) {
                    newSqlBuffer.append(rep);
                    token = null;
                } else {
                    mappingList.add(token);
                    newSqlBuffer.append(need);
                    token = parser.nextToken();
                    token = null;
                }
            } else {
                if (!rep.equals(token)) {
                    newSqlBuffer.append(token);
                }
            }
            lastToken = token;
        }
        str = newSqlBuffer.toString();
        map.put(str, mappingList);
        return map;
    }