code: public GroupedPropertyLoader splitKeyAndGroup(final String keyDelimiter) {
          return group(new BiFunction<String, String, Tuple3<String, String, String>>() {
              public Tuple3<String, String, String> apply(String key, String value) {
                  String[] keyTokens = key.split(keyDelimiter, 2);
                  if ( keyTokens.length == 1) {
                      keyTokens = new String[] {"", keyTokens[0]};
                  }
                  return Tuple3.tuple3(keyTokens[0], keyTokens[1], value);
              }
          });
      }
docs: Split the key into 2 and use the first token to group
  
  <pre>
  For keys in the form:
  Properties()
  group.key1=value1
  group.key2=value2
  group2.key2=value2
  group2.key3=value3
  
  create a GroupedPropertyLoader to load one Properties map for each of the groups, stripping the group name from property keys
  
  e.g.
  group1 = Properties()
  key1=value1
  key2=value2
  
  group2 = Properties()
  key2 = value2
  key3 = value3
  
  Where the delimiter does not exist in the source key, the group "" will be used.
  </pre>
  
  @param keyDelimiter