问题描述
在我的 android 应用程序中,我有一个功能可以按名称对文件列表进行排序。
问题: 列表不按首字母排序。
我尝试了什么:
1- 尝试按完整字符串(即文件名)排序。此方法以任意顺序返回列表。
sortedList = lisOfDocuments.sortedBy {it.getMFile_name().toString().trim()} as MutableList<FileModel>
2- 尝试按字符串的第一个字符(即文件名)排序。此方法根本不对列表进行排序。
sortedList = lisOfDocuments.sortedBy {
"s(\\d+)".toRegex().matchEntire(
it.getMFile_name().toString().trim().first().toString()
)?.groups?.get(1)?.value?.toInt()
} as MutableList<FileModel>
一些示例文件名如下:
- imgscaneer2021-02-24 17:1326
- Sam-Ingram-cvonline-pago
- trtDinosaurs 视觉百科全书 (PDfdrive)
- 1file-example_PDF_1MB
顺序应该是
- 1file-example_PDF_1MB
- imgscaneer2021-02-24 17:1326
- Sam-Ingram-cvonline-pago
- trtDinosaurs 视觉百科全书 (PDfdrive)
有人可以帮我解决这个问题吗?任何帮助将不胜感激。
谢谢
解决方法
val Documents = listOf(Files("imgscaneer2021-02-24"),Files("Sam-Ingram-cvonline-pago"),Files("trtDinosaurs A Visual Encyclopedia ( PDFDrive )"),Files("1file-example_PDF_1MB"))
val sortedList = Documents.sortedBy { files -> files.name }
sortedList.forEach { s -> println(s.name) }
class Files(val name: String)
这只是一个想法。