java 根据 ASCII 码表顺序升序排列

java

原理通过sort()方法排序。

 

/**

* 反射拼接类的属性值

*

* @return

*/

private String getAscOrderString() {

Object object = this;

String rawString = "";

Map<String, String> map = new HashMap<String, String>();

//获取所有的属性组

Field[] superField = this.getClass().getSuperclass().getDeclaredFields();

Field[] selfField = this.getClass().getDeclaredFields();

List<Field> allfield = new ArrayList();

allfield.addAll(Arrays.stream(superField).collect(Collectors.toList()));

allfield.addAll(Arrays.stream(selfField).collect(Collectors.toList()));

for (int i = 0; i < allfield.size(); i++) {

Field field = allfield.get(i);

String fieldName = field.getName();

if (Objects.nonNull(field.getAnnotation(JSONField.class))) {

fieldName = field.getAnnotation(JSONField.class).name();

}

field.setAccessible(true);

String valString;

try {

if (field.get(object) == null) {

valString = "";

} else {

valString = field.get(object).toString();

}

map.put(fieldName, valString);

} catch (IllegalArgumentException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IllegalAccessException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

Collection<String> keyset = map.keySet();

List list = new ArrayList<String>(keyset);

Collections.sort(list);

for (int i = 0; i < list.size(); i++) {

if (i == (list.size() - 1)) {

if (!StringUtils.isEmpty(map.get(list.get(i)))) {

rawString += list.get(i) + "=" + map.get(list.get(i));

}

} else {

if (!StringUtils.isEmpty(map.get(list.get(i)))) {

rawString += list.get(i) + "=" + map.get(list.get(i)) + "&";

}

}

}

return rawString;

}

  

以上是 java 根据 ASCII 码表顺序升序排列 的全部内容, 来源链接: utcz.com/z/392801.html

回到顶部