我有字符串变量String temp="acc=101&name=test";
,现在如何name
从临时字符串中获取参数的值。
问问题
436 次
9 回答
2
temp.split("&")[1].split("=")[1]
于 2013-08-27T07:15:34.637 回答
1
public static Map<String, String> getParamMap(String query)
{
String[] params = query.split("&");
Map<String, String> map = new HashMap<String, String>();
for (String param : params)
{
String name = param.split("=")[0];
String value = param.split("=")[1];
map.put(name, value);
}
return map;
}
String temp="acc=101&name=test";
Map<String, String> map = getParamMap(temp);
for(Object object :map.keySet()){
System.out.println("key= "+object +" value= "+map.get(object));
}
System.out.println(map.get("name"));
于 2013-08-27T07:23:20.373 回答
1
这是一种非一般的方式
String str = "name=";
System.out.println(temp.substring(temp.indexOf(str) + str.length()));
当然,它可以以更一般的方式实现:
String temp = "acc=101&name=test";
StringTokenizer st = new StringTokenizer(temp, "&");
String paramName = "name";
String paramValue = "";
while(st.hasMoreElements()) {
String str = st.nextToken();
if (str.contains(paramName)) {
paramValue = str.substring(str.indexOf(paramName) + paramName.length() + 1);
break;
}
}
System.out.println(paramValue);
于 2013-08-27T07:24:54.507 回答
0
String temp="acc=101&name=test";
String[] split = temp.split("&");
String[] name = split[1].split("=");
System.out.println(name[1]);
于 2013-08-27T07:18:10.150 回答
0
您可以使用如下方法
public static String getValue(String queyStr, String paraamName){
String[] queries=queyStr.split("&");
for(String param:queries){
if(param.indexOf(paraamName)!=-1)
return param.split("=")[1];
}
return null;
}
并调用类似的方法
getValue(temp, "name")
于 2013-08-27T07:19:34.240 回答
0
假设你有常数format
:
String temp="acc=101&name=test";
String result =temp.substring(temp.lastIndexOf("=")+1,temp.length());
//result is test
于 2013-08-27T07:19:40.990 回答
0
public static void main(String[] args)
{
String temp = "acc=101&name=test";
System.out.println(temp.split("&")[1].split("=")[1]);
}
于 2013-08-27T07:20:00.617 回答
0
如果您正在寻找一种从 URL 中解析 GET-Parameters 的方法:
public static Map<String, String> splitQuery(URL url) throws UnsupportedEncodingException {
Map<String, String> query_pairs = new LinkedHashMap<String, String>();
String query = url.getQuery();
String[] pairs = query.split("&");
for (String pair : pairs) {
int idx = pair.indexOf("=");
query_pairs.put(URLDecoder.decode(pair.substring(0, idx), "UTF-8"), URLDecoder.decode(pair.substring(idx + 1), "UTF-8"));
}
return query_pairs;
}
您可以使用 访问返回的地图<map>.get("name")
,问题中给出的 URL 将返回“测试”。
于 2013-08-27T07:22:20.807 回答
0
我会将整个参数放在HashMap中,以便轻松获取值。
HashMap<String, String> valuemap = new HashMap<String, String>();
如果你这样做,你必须在正确的地方拆分值......
String temp="acc=101&name=test";
valuemap.put(temp.split("&")[0].split("=")[0], temp.split("&")[0].split("=")[1]);
valuemap.put(temp.split("&")[1].split("=")[0], temp.split("&")[1].split("=")[1]);
...并将它们放入您的 HashMap 中。比你有一个很好的所有值的集合,如果你有两个以上的值也会更好。如果您想要返回值,请使用:
valuemap.get("acc")
valuemap.get("name")
于 2013-08-27T07:32:26.263 回答