Ios 按子字符串对数组进行快速排序 我有一个字符串数组(它们是被串到字符串中的URL),在每个字符串的中间,它们都有一个 uUID()。uuIDString 中有一个计数变量和一个.jpg。 let arr = [ htps://firebasestorage.googleapis.com/myApp.appspot.com/o/users%Mxd6EUO5l2LK-mKa%2F4606E275-B2C5-4A69-B997-01423ABFE3B7%2FBE26726D-B8E5-47C8-9A18-504D23B99090_3.jpg?alt=media&token=e215e6a1-f5b9-431e-83a3, htps://firebasestorage.googleapis.com/myAapp.appspot.com/o/users%-Ll_Mxd6EUO5l2LK-mKa%2F4606E275-B2C5-4A69-B997-01423ABFE3B7%2FBE26726D-B8E5-47C8-9A18-504D23B99090_1.jpg?alt=media&token=f350cf36-4c4e-4faf, htps://firebasestorage.googleapis.com/myAPp.appspot.com/o/users%mKa%2F4606E275-B2C5-4A69-B997-01423ABFE3B7%2FBE26726D-B8E5-47C8-9A18-504D23B99090_2.jpg?alt=media&token=123uyqtr ....] 第一个元素在其中间有: 2FBE26726-B8E5-47 C89A18-504D24B990903。 第二个元素在其中间有: 2FBE26726-B8E5-47 C89A18-504D24B990901,JPG Bool进入 设firstIndex=Int((first.components(以“.jpg”)[0]分隔)components(以:“FBE26726D-B8E5-47C8-9A18-504D23B99090”分隔)[1])??-1 设secondIndex=Int((second.components(以“.jpg”)[0]分隔)components(以:“FBE26726D-B8E5-47C8-9A18-504D23B99090”分隔)[1])??-1 返回第一个索引

Ios 按子字符串对数组进行快速排序 我有一个字符串数组(它们是被串到字符串中的URL),在每个字符串的中间,它们都有一个 uUID()。uuIDString 中有一个计数变量和一个.jpg。 let arr = [ htps://firebasestorage.googleapis.com/myApp.appspot.com/o/users%Mxd6EUO5l2LK-mKa%2F4606E275-B2C5-4A69-B997-01423ABFE3B7%2FBE26726D-B8E5-47C8-9A18-504D23B99090_3.jpg?alt=media&token=e215e6a1-f5b9-431e-83a3, htps://firebasestorage.googleapis.com/myAapp.appspot.com/o/users%-Ll_Mxd6EUO5l2LK-mKa%2F4606E275-B2C5-4A69-B997-01423ABFE3B7%2FBE26726D-B8E5-47C8-9A18-504D23B99090_1.jpg?alt=media&token=f350cf36-4c4e-4faf, htps://firebasestorage.googleapis.com/myAPp.appspot.com/o/users%mKa%2F4606E275-B2C5-4A69-B997-01423ABFE3B7%2FBE26726D-B8E5-47C8-9A18-504D23B99090_2.jpg?alt=media&token=123uyqtr ....] 第一个元素在其中间有: 2FBE26726-B8E5-47 C89A18-504D24B990903。 第二个元素在其中间有: 2FBE26726-B8E5-47 C89A18-504D24B990901,JPG Bool进入 设firstIndex=Int((first.components(以“.jpg”)[0]分隔)components(以:“FBE26726D-B8E5-47C8-9A18-504D23B99090”分隔)[1])??-1 设secondIndex=Int((second.components(以“.jpg”)[0]分隔)components(以:“FBE26726D-B8E5-47C8-9A18-504D23B99090”分隔)[1])??-1 返回第一个索引,ios,arrays,swift,sorting,Ios,Arrays,Swift,Sorting,第四个元素,等等 如何在此数组中根据\u x.jpg的UUID子字符串或仅根据\u x.jpg对这些字符串进行排序 仅供参考,如果您的起始阵列是这样的,我可以事先访问UUID let array = ["htps://firebasestorage.googleapis.com/myApp.appspot.com/o/users%Mxd6EUO5l2LK-mKa%2F4606E275-B2C5-4A69-B997-01423ABFE3B7%2FBE26726D-B8E5-47C8-9A18-50

第四个元素,等等

如何在此数组中根据\u x.jpgUUID子字符串或仅根据\u x.jpg对这些字符串进行排序


仅供参考,如果您的起始阵列是这样的,我可以事先访问UUID

let array = ["htps://firebasestorage.googleapis.com/myApp.appspot.com/o/users%Mxd6EUO5l2LK-mKa%2F4606E275-B2C5-4A69-B997-01423ABFE3B7%2FBE26726D-B8E5-47C8-9A18-504D23B99090_3.jpg?alt=media&token=e215e6a1-f5b9-431e-83a3","htps://firebasestorage.googleapis.com/myAapp.appspot.com/o/users%-Ll_Mxd6EUO5l2LK-mKa%2F4606E275-B2C5-4A69-B997-01423ABFE3B7%2FBE26726D-B8E5-47C8-9A18-504D23B99090_1.jpg?alt=media&token=f350cf36-4c4e-4faf","htps://firebasestorage.googleapis.com/myAPp.appspot.com/o/users%mKa%2F4606E275-B2C5-4A69-B997-01423ABFE3B7%2FBE26726D-B8E5-47C8-9A18-504D23B99090_2.jpg?alt=media&token=123uyqtr"]
试试这个

您可以根据
jpg
后缀进行拆分,然后根据
UUID
进行拆分

let sortedArray = array.sorted { (first, second) -> Bool in

let firstIndex = Int((first.components(separatedBy: ".jpg")[0]).components(separatedBy: "FBE26726D-B8E5-47C8-9A18-504D23B99090_")[1]) ?? -1
let secondIndex = Int((second.components(separatedBy: ".jpg")[0]).components(separatedBy: "FBE26726D-B8E5-47C8-9A18-504D23B99090_")[1]) ?? -1
return firstIndex < secondIndex
}
让sortedArray=array.sorted{(第一,第二)->Bool进入
设firstIndex=Int((first.components(以“.jpg”)[0]分隔)components(以:“FBE26726D-B8E5-47C8-9A18-504D23B99090”分隔)[1])??-1
设secondIndex=Int((second.components(以“.jpg”)[0]分隔)components(以:“FBE26726D-B8E5-47C8-9A18-504D23B99090”分隔)[1])??-1
返回第一个索引<第二个索引
}

您可以这样对数组排序

  • 将字符串(返回)转换为URL
  • 获取每个URL的
    lastPathComponent
  • 从最后一个下划线字符到结尾提取子字符串
  • 将字符串与
    Compare:
    numeric
    选项或
    localizedStandardCompare:

您想按
jpg
的编号对它们进行排序吗?是的,因为这是它们的共同点,可用于排序使用
拆分字符串。这里第一部分是UDID,第二部分是x.jpg。现在你可以相应地进行分类了。@dahiya_男孩谢谢你的建议。我要听沙希德的回答。这基本上就是你所说的,而不是将你的
UUID
映射到
URL
s,然后
String
s,将它们映射成
[UUID:URL]
。按关键字对dict排序,然后获取其值。出于这些目的,
[(UUID,URL)]
也同样有效。几分钟后我将尝试一下,谢谢不同的设备有不同的UDID,所以与UDID的静态分离不是很好。@SShahid我不知道OP是怎么说的。你能强调一下吗。如果它是通用的,那么它对一个用户来说一定是通用的,而不是对整个用户来说。@SShahid我只是在操场上试过,它不起作用。它精确地打印出sameI添加了我使用的起始数组。你在用别的东西吗?