sak*_*sak 6 sorting android kotlin
我正在尝试对此进行排序:listOf("P5","P1","P2","P3","P10")
通过使用 val list = categoryList.sortedBy { it }
但返回的是这个:[P1, P10, P2, P3, P5]
,根据我的要求它应该返回[P1, P2, P3, P5, P10]
所以我在这里做错了什么?
Mad*_*hat 11
由于您直接按字符串值排序,因此您会得到该结果。相反,您可以按字符串的整数部分进行排序,如下所示:
categoryList.sortedBy { it.substring(1).toInt() }
Run Code Online (Sandbox Code Playgroud)
您正在排序String
列表而不是Integer
列表。这就是P10
摆在面前的原因P2
。因此,请尝试以下方法进行排序:
var list: List<String> = mutableListOf("P5","P1","P2","P3","P10")
.sortedWith(compareBy({ it.length }, { it }))
Run Code Online (Sandbox Code Playgroud)