KMNTools.swift 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. //
  2. // KMNTools.swift
  3. // PDF Reader Pro
  4. //
  5. // Created by 丁林圭 on 2024/10/24.
  6. //
  7. import Cocoa
  8. class KMNTools: NSObject {
  9. @objc class func parseIndexSet(indexSet: IndexSet) -> String {
  10. return self.parseIndexs(indexs: indexSet.sorted())
  11. }
  12. @objc class func parseIndexs(indexs: [Int]) -> String {
  13. if (indexs.isEmpty) {
  14. return ""
  15. }
  16. if (indexs.count == 1) {
  17. return "\(indexs.first!+1)"
  18. }
  19. var sortArray: [Int] = []
  20. for i in indexs {
  21. sortArray.append(i)
  22. }
  23. /// 排序 (升序)
  24. sortArray.sort(){$0 < $1}
  25. var a: Int = 0
  26. var b: Int = 0
  27. var result: String?
  28. for i in sortArray {
  29. if (result == nil) {
  30. a = i
  31. b = i
  32. result = ""
  33. continue
  34. }
  35. if (i == b+1) {
  36. b = i
  37. if (i == sortArray.last) {
  38. result?.append(String(format: "%d-%d", a+1,b+1))
  39. }
  40. } else {
  41. if (a == b) {
  42. result?.append(String(format: "%d,", a+1))
  43. } else {
  44. result?.append(String(format: "%d-%d,", a+1,b+1))
  45. }
  46. a = i
  47. b = i
  48. if (i == sortArray.last) {
  49. result?.append(String(format: "%d", a+1))
  50. }
  51. }
  52. }
  53. return result ?? ""
  54. }
  55. }