我有一个字符串类似url的参数a=1&b=2&c=3&d=4有没有工具类解析这样的字符串,直接取a或者b的值比如xxUtil.get("a"),就得到了1

解决方案 »

  1.   


            String queryString = "a=1&b=2&c=3&d=4";
            String[] queryStringSplit = queryString.split("&");
            Map<String,String> queryStringMap =
                    new HashMap<String,String>(queryStringSplit.length);
            String[] queryStringParam;
            for (String qs : queryStringSplit) {
                queryStringParam = qs.split("=");
                queryStringMap.put(queryStringParam[0], queryStringParam[1]);
            }        System.out.println(queryStringMap);
      

  2.   


    import java.util.HashMap;
    import java.util.Map;/**
     * 类说明:URL参数解析
     * 
     * @author 作者: LiuJunGuang
     * @version 创建时间:2011-4-14 上午12:36:51
     */
    public class URLAnalysis {
    private Map<String, String> paramMap = new HashMap<String, String>(); public void analysis(String url) {
    paramMap.clear();
    if (!"".equals(url)) {// 如果URL不是空字符串
    url = url.substring(url.indexOf('?') + 1);
    String paramaters[] = url.split("&");
    for (String param : paramaters) {
    String values[] = param.split("=");
    paramMap.put(values[0], values[1]);
    }
    }
    } public String getParam(String name) {
    return paramMap.get(name);
    } public static void main(String[] args) {
    String test = "http://xxx.com?name=helddlo&id=100";
    URLAnalysis urlAnalysis = new URLAnalysis();
    urlAnalysis.analysis(test);
    System.out.println("name = " + urlAnalysis.getParam("name"));
    System.out.println("id = " + urlAnalysis.getParam("id"));
    }
    }
      

  3.   

    import java.util.*;public class Test2 { /**
     * @param args
     */ public static void main(String[] args) {
    // TODO Auto-generated method stub
    Scanner scan = new Scanner(System.in);
    String queryString = "a=1&b=2&c=3&d=4";
    String[] queryStringSplit = queryString.split("&");
    Map<String, String> queryStringMap = new HashMap<String, String>(
    queryStringSplit.length);
    String[] queryStringParam;
    for (String qs : queryStringSplit) {
    queryStringParam = qs.split("=");
    queryStringMap.put(queryStringParam[0], queryStringParam[1]);
    }
    System.out.print("请输入你要查询的字符串:");
    String s = scan.nextLine();
    System.out.println("你得到的对应值为:");
    getValue(queryStringMap, s); } public static void getValue(Map<String, String> m, String input) {
    Set<String> keySet = m.keySet();
    for (String s : keySet) {
    if (s.equals(input)) {
    System.out.println(m.get(s));
    }
    } }}
    这是我参考一楼的代码修改了一下,你看看行不??