1

私の文字列は次のようになります

http://localhost:8080/HospitalServer/files/file?id=34&firstname=alex&lastname=ozouf&age=33&firstname=kevin&lastname=gerfild&age=27

このコードを使用してパラメーターを解析します

final Map<String, List<String>> query_pairs = new LinkedHashMap<String, List<String>>();
          final String[] pairs = query.split("&");
          for (String pair : pairs) {
            final int idx = pair.indexOf("=");
            final String key = idx > 0 ? URLDecoder.decode(pair.substring(0, idx), "UTF-8") : pair;
            if (!query_pairs.containsKey(key)) {
              query_pairs.put(key, new LinkedList<String>());
            }
            final String value = idx > 0 && pair.length() > idx + 1 ? URLDecoder.decode(pair.substring(idx + 1), "UTF-8") : null;
            query_pairs.get(key).add(value);

          }
          System.out.println(query_pairs);

結果は

{id=[34], firstname=[alex, kevin], lastname=[ozouf, gerfild], age=[33, 27]}

結果は悪くありませんが、パラメータを人ごとにグループ化したいと思います。

{id=[34], 1=[alex,ozouf,33 ], 2=[kevin, gerfild,27]}

前回の結果から作成できますが、作業が 2 回行われているような気がします。私は何をすると思いますか?

4

1 に答える 1