@NotNull
    public static Map<String, String> toMap(@Nullable final String stringMap, @NotNull final String pairDelimiter, @NotNull final String keyValueDelimiter) {
        Map<String, String> theMap = new HashMap<>();
        for (final String pairStr : toArray(stringMap, pairDelimiter)) {
            final String[] arrayPair = toArray(pairStr, keyValueDelimiter);
            if (arrayPair.length != 2 && arrayPair.length != 0) {
                throw new IllegalArgumentException(pairStr + ExceptionValues.EXCEPTION_DELIMITER + ExceptionValues.INVALID_KEY_VALUE_PAIR);
            } else if (arrayPair.length == 2) {
                theMap.put(arrayPair[0], arrayPair[1]);
            }
        }
        return theMap;
    }
@ NotNull public static Map < String , String > toMap ( @ Nullable final String stringMap , @ NotNull final String pairDelimiter , @ NotNull final String keyValueDelimiter ) { Map < String , String > theMap = new HashMap < > ( ) ; for ( final String pairStr : toArray ( stringMap , pairDelimiter ) ) { final String [ ] arrayPair = toArray ( pairStr , keyValueDelimiter ) ; if ( arrayPair . length != 2 && arrayPair . length != 0 ) { throw new IllegalArgumentException ( pairStr + ExceptionValues . EXCEPTION_DELIMITER + ExceptionValues . INVALID_KEY_VALUE_PAIR ) ; } else if ( arrayPair . length == 2 ) { theMap . put ( arrayPair [ 0 ] , arrayPair [ 1 ] ) ; } } return theMap ; }
Splits a stringMap in the format key1<keyValueDelimiter>value1 <pairDelimiter> key2<keyValueDelimiter>value2 ... into a Map<String, String>

@param stringMap         the string to be split
@param pairDelimiter     the delimiter between pairs of key, value
@param keyValueDelimiter the delimiter between the key and it's corresponding value
@return a Map<String, String> from the specified stringMap with the specified delimiters
@throws IllegalArgumentException if the stringMap doesn't respect the specified format