ArrayList<String> list = new ArrayList<>();
private void initData() {
try {
JSONObject jsonObject = new JSONObject(JsonResult.test);
Iterator<String> keys = jsonObject.keys();
while (keys.hasNext()){
list.add(keys.next());
}
getUrlParam(list);
for(String str:list){
Log.d("json",str);
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 對字元串數組進行排序
* @param keys
* @return
* */
public static ArrayList<String> getUrlParam(ArrayList<String> keys){
for (int i = 0; i < keys.size() - 1; i++) {
for (int j = 0; j < keys.size() - i -1; j++) {
String pre = keys.get(j);
String next = keys.get(j + 1);
if(isMoreThan(pre, next)){
String temp = pre;
keys.set(j,next);
keys.set(j+1 , temp);
}
}
}
return keys;
}
/**
* 比較兩個字元串的大小,按字母的ASCII碼比較
* @param pre
* @param next
* @return
* */
private static boolean isMoreThan(String pre, String next){
if(null == pre || null == next || "".equals(pre) || "".equals(next)){
return false;
}
char[] c_pre = pre.toCharArray();
char[] c_next = next.toCharArray();
int minSize = Math.min(c_pre.length, c_next.length);
for (int i = 0; i < minSize; i++) {
if((int)c_pre[i] > (int)c_next[i]){
return true;
}else if((int)c_pre[i] < (int)c_next[i]){
return false;
}
}
if(c_pre.length > c_next.length){
return true;
}
return false;
}