我收到一个请求标头,其值包含多个双引号,我如何在我的java代码中解析它?
这是标题的样子
pp-groups:“管理员”,“超级用户”,“查看”,“编辑”
答案 0 :(得分:1)
为什么不拆分和修剪?
public static void main(String...arg) {
List<String> vals = new ArrayList<String>();
String header = "\"Administrator\",\"\"Super\" User\",,\"\",view,\"Edit\"";
for(String val : header.split(",")) {
if(val.length() > 0) {
if(val.charAt(0) == '\"' && val.charAt(val.length()-1) == '\"') {
if(val.length() > 2) { //not just a pair of quotes
vals.add(val.substring(1, val.length()-1));
}
} else {
vals.add(val);
}
}
}
System.out.println(vals);
}
输出:
[Administrator, "Super" User, view, Edit]
答案 1 :(得分:0)
我建议您查看split
method。
答案 2 :(得分:0)
使用split()
或StringTokenizer
拆分字符串,然后关闭引号。
String header=request.getHeader("pp-groups");
for (String val : header.replace("\"", "").split(",")) System.out.println(val);
不支持内联引用,但不确定是否需要
答案 3 :(得分:0)
如果您尝试手动执行此操作,而不是使用现有框架进行HTTP请求,则需要自己解析字符串。最好的方法是使用正则表达式(http://docs.oracle.com/javase/tutorial/essential/regex/ ......这一点的重要部分:http://docs.oracle.com/javase/tutorial/essential/regex/groups.html)。或者,您可以花一些时间来处理各种String方法,例如.split和.substring