Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于从字符串创建映射的公共java函数_Java_String_Map - Fatal编程技术网

用于从字符串创建映射的公共java函数

用于从字符串创建映射的公共java函数,java,string,map,Java,String,Map,是否有任何公共函数(在ApacheCommons或类似工具中)可以从查询参数(如字符串)生成映射 具体而言: 变体a(查询字符串) 变量b(缓存控制头) 我不想重新发明轮子 谢谢我认为不存在这样的库,但是如果您想用很少的代码重新实现它,您可以使用“面向lambda的库”,例如or。 尝试一下或浏览源代码,看看它是如何实现的。似乎一个简单的HashMap扩展就可以做到这一点: /** * Simple demo of extending a HashMap */ public class To

是否有任何公共函数(在ApacheCommons或类似工具中)可以从查询参数(如字符串)生成映射

具体而言:

变体a(查询字符串)

变量b(缓存控制头)

我不想重新发明轮子


谢谢

我认为不存在这样的库,但是如果您想用很少的代码重新实现它,您可以使用“面向lambda的库”,例如or。


尝试一下或浏览源代码,看看它是如何实现的。

似乎一个简单的HashMap扩展就可以做到这一点:

/**
 * Simple demo of extending a HashMap
 */
public class TokenizedStringHashMap extends HashMap<String, String> {

  void putAll(String tokenizedString, String delimiter) {
    String[] nameValues = tokenizedString.split(delimiter);
    for (String nameValue : nameValues) {
      String[] pair = nameValue.split("=");
      if (pair.length == 1) {
        // Duplicate the key name if there is only one value
        put(pair[0], pair[0]);
      } else {
        put(pair[0], pair[1]);
      }
    }
  }

  public static void main(String[] args) {
    TokenizedStringHashMap example = new TokenizedStringHashMap();

    example.putAll("a=1&b=3", "&");
    System.out.println(example.toString());
    example.clear();

    example.putAll("max-age=3600;must-revalidate", ";");
    System.out.println(example.toString());

  }
}
/**
*扩展HashMap的简单演示
*/
公共类TokenizedStringHashMap扩展了HashMap{
void putAll(字符串标记化字符串,字符串分隔符){
String[]nameValues=tokenizedString.split(分隔符);
for(字符串名称值:名称值){
字符串[]对=nameValue.split(“”);
if(pair.length==1){
//如果只有一个值,请复制密钥名称
put(对[0],对[0]);
}否则{
put(对[0],对[1]);
}
}
}
公共静态void main(字符串[]args){
TokenizedStringHashMap示例=新的TokenizedStringHashMap();
例如,putAll(“a=1&b=3”、“&”);
System.out.println(例如.toString());
示例.clear();
putAll(“最大年龄=3600;必须重新验证”、“;”;
System.out.println(例如.toString());
}
}
s="max-age=3600;must-revalidate"
=> Utils.mapFunction(s, ';', '=') 
=>  (Hash)Map { max-age:3600; must-revalidate:true }
/**
 * Simple demo of extending a HashMap
 */
public class TokenizedStringHashMap extends HashMap<String, String> {

  void putAll(String tokenizedString, String delimiter) {
    String[] nameValues = tokenizedString.split(delimiter);
    for (String nameValue : nameValues) {
      String[] pair = nameValue.split("=");
      if (pair.length == 1) {
        // Duplicate the key name if there is only one value
        put(pair[0], pair[0]);
      } else {
        put(pair[0], pair[1]);
      }
    }
  }

  public static void main(String[] args) {
    TokenizedStringHashMap example = new TokenizedStringHashMap();

    example.putAll("a=1&b=3", "&");
    System.out.println(example.toString());
    example.clear();

    example.putAll("max-age=3600;must-revalidate", ";");
    System.out.println(example.toString());

  }
}