3

数字を含む文字列をソートしたいのですが、ソート後はこのようになります["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)ます。これを修正するのを手伝ってください。

4

5 に答える 5