Importjava.util.ArrayList;Importjava.util.Collections;ImportJava.util.Comparator;ImportJava.util.HashMap;Importjava.util.List;ImportJava.util.Map; Public classAsciisort { Public Static voidMain (string[] args) {//ParametersMap<string,string>map =NewHashmap<string,string>(); Map.put ("Version", "2.0"); Map.put ("CharSet", "UTF-8"); Map.put ("Sign_type", "rsa_1_256"); Map.put ("Status", "0"); Map.put ("Message", "" "); //order all incoming parameters by the ASCII code of the field name from small to large (dictionary order)list<map.entry<string, string>> infoids =NewArraylist<map.entry<string, string>>(Map.entryset ()); Collections.sort (Infoids,NewComparator<map.entry<string, string>>() { Public intCompare (map.entry<string, string> O1, map.entry<string, string>O2) { return(O1.getkey ()). ToString (). CompareTo (O2.getkey ()); } }); //structure The signature key-value pair formatStringBuilder SB =NewStringBuilder (); for(Map.entry<string, string>item:infoids) { if(Item.getkey ()! =NULL|| Item.getkey ()! = "") {String key=Item.getkey (); String Val=Item.getvalue (); if(! (val = = "" | | val = =NULL) {sb.append (key+ "=" + val + "&"); } } } //charset=utf-8&sign_type=rsa_1_256&status=0&version=2.0&System.out.println (sb.tostring ()); }}
Parameters are sorted by the ASCII code of the field name