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