cdm/src/main/java/ucar/nc2/dataset/DatasetUrl.java
static private Map<String, String> parseFragment(String fragment) {
    Map<String, String> map = new HashMap<>();
    if (fragment != null && fragment.length() >= 0) {
      if (fragment.charAt(0) == '#')
        fragment = fragment.substring(1);
      String[] pairs = fragment.split("[ \t]*[&][ \t]*");
      for (String pair : pairs) {
        String[] pieces = pair.split("[ \t]*[=][ \t]*");
        switch (pieces.length) {
          case 1:
            map.put(EscapeStrings.unescapeURL(pieces[0]).toLowerCase(), "true");
            break;
          case 2:
            map.put(EscapeStrings.unescapeURL(pieces[0]).toLowerCase(),
                    EscapeStrings.unescapeURL(pieces[1]).toLowerCase());
            break;
          default:
            return null; // does not parse
        }
      }
    }
    return map;
  }
static private Map<String, String> parseFragment(String fragment) {
    Map<String, String> map = new HashMap<>();
    if (fragment != null && fragment.length() >= 0) {
      if (fragment.charAt(0) == '#')
        fragment = fragment.substring(1);
      String[] pairs = fragment.split("[ \t]*[&][ \t]*");
      for (String pair : pairs) {
        String[] pieces = pair.split("[ \t]*[=][ \t]*");
        switch (pieces.length) {
          case 1:
            map.put(EscapeStrings.unescapeURL(pieces[0]).toLowerCase(), "true");
            break;
          case 2:
            map.put(EscapeStrings.unescapeURL(pieces[0]).toLowerCase(),
                    EscapeStrings.unescapeURL(pieces[1]).toLowerCase());
            break;
          default:
            return null; // does not parse
        }
      }
    }
    return map;
  }
static private Map < String , String > parseFragment ( String fragment ) { Map < String , String > map = new HashMap <> ( ) ; if ( fragment != null && fragment . length ( ) >= 0 ) { if ( fragment . charAt ( 0 ) == ' ' ) fragment = fragment . substring ( 1 ) ; String [ ] pairs = fragment . split ( "[ \t]*[&][ \t]*" ) ; for ( String pair : pairs ) { String [ ] pieces = pair . split ( "[ \t]*[=][ \t]*" ) ; switch ( pieces . length ) { case 1 : map . put ( EscapeStrings . unescapeURL ( pieces [ 0 ] ) . toLowerCase ( ) , "true" ) ; break ; case 2 : map . put ( EscapeStrings . unescapeURL ( pieces [ 0 ] ) . toLowerCase ( ) , EscapeStrings . unescapeURL ( pieces [ 1 ] ) . toLowerCase ( ) ) ; break ; default : return null ; // does not parse } } } return map ; }
Given the fragment part of a url, see if it
parses as name=value pairs separated by '&'
(same as query part).

@param fragment the fragment part of a url
@return a map of the name value pairs (possibly empty),
or null if the fragment does not parse.
Given the fragment part of a url see if it parses as name = value pairs separated by & ( same as query part ) .