0

我有字符串变量String temp="acc=101&name=test";,现在如何name从临时字符串中获取参数的值。

4

9 回答 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 回答