对List集合中的版本号字符串排序

2018-11-09 11:37:24

水文正式开始

我不生产代码 我只做代码的搬运工 对于 比较版本号这种问题是在是太头疼了。不是int型 不好直接使用 sort 或者reverse 排序
尊重一下版权 https://blog.csdn.net/u010257076/article/details/40478359

简化了一下

  1. import java.util.ArrayList;
  2. import java.util.Collections;
  3. import java.util.Comparator;
  4. import java.util.List;
  5. public class VerSortUtil implements Comparator<String>{
  6. @Override
  7. public int compare(String ver1, String ver2) {
  8. String[] valueSplit1 = ver1.split("[.]");
  9. String[] valueSplit2 = ver2.split("[.]");
  10. int minLength = valueSplit1.length;
  11. if (minLength > valueSplit2.length) {
  12. minLength = valueSplit2.length;
  13. }
  14. for (int i = 0; i < minLength; i++) {
  15. int value1 = Integer.parseInt(valueSplit1[i]);
  16. int value2 = Integer.parseInt(valueSplit2[i]);
  17. if(value1 > value2){
  18. return 1;
  19. }else if(value1 < value2){
  20. return -1;
  21. }
  22. }
  23. return valueSplit1.length - valueSplit2.length;
  24. }
  25. public static void main(String[] args) {
  26. List<String> version = new ArrayList<String>();
  27. version.add("1.24.99");
  28. version.add("1.25.00");
  29. version.add("1.50.31");
  30. version.add("1.01.25");
  31. version.add("1.25.85");
  32. version.add("9.01.25");
  33. version.add("10.50.28");
  34. Collections.sort(version);
  35. System.err.println(version);
  36. Collections.sort(version, new VerSortUtil());
  37. System.out.println(version);
  38. }
  39. }

0
1
0

添加评论

正在回复:
取消
1
0
1
0