code: public Map<String,String> parse(final String str, char[] separators) {
  		if (separators == null || separators.length == 0) {
  			return new HashMap<String,String>();
  		}
  		char separator = separators[0];
  		if (str != null) {
  			int idx = str.length();
  			for (int i = 0; i < separators.length; i++) {
  				int tmp = str.indexOf(separators[i]);
  				if (tmp != -1) {
  					if (tmp < idx) {
  						idx = tmp;
  						separator = separators[i];
  					}
  				}
  			}
  		}
  		return parse(str, separator);
  	}
docs: Extracts a map of name/value pairs from the given string. Names are expected to be unique. Multiple separators
  may be specified and the earliest found in the input string is used.
  
  @param str the string that contains a sequence of name/value pairs
  @param separators the name/value pairs separators
  
  @return a map of name/value pairs