java ascii 排序_java 根据 ASCII 码表顺序升序排列
原理通過sort()方法排序。
/**
* 反射拼接類的屬性值
*
* @return
*/
private String getAscOrderString() {
Object object = this;
String rawString = "";
Map map = new HashMap();
//獲取所有的屬性組
Field[] superField = this.getClass().getSuperclass().getDeclaredFields();
Field[] selfField = this.getClass().getDeclaredFields();
List 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 keyset = map.keySet();
List list = new ArrayList(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 排序_java 根据 ASCII 码表顺序升序排列的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [vue] vue怎么获取DOM节点?
- 下一篇: 2019-11-29GPS干扰技术解析