我想对一些包含数字的字符串进行排序,但经过排序后,它变成了这样["s1", "s10", "s11", ... ,"s2", "s21", "s22"]
。在我搜索后,我发现这个问题有同样的问题。但在我的例子中,我有mutableList<myModel>
,我必须将所有字符串myModel.title
放入一个可变列表中,然后放入下面的代码中:
val sortData = reversedData.sortedBy {
//pattern.matcher(it.title).matches()
Collections.sort(it.title, object : Comparator<String> {
override fun compare(o1: String, o2: String): Int {
return extractInt(o1) - extractInt(o2)
}
fun extractInt(s: String): Int {
val num = s.replace("\\D".toRegex(), "")
// return 0 if no digits found
return if (num.isEmpty()) 0 else Integer.parseInt(num)
}
})
}
.sortedBy
我在和中有一个错误Collections.sort(it.title)
,请帮我解决这个问题。