也许我在这里丢失了一些东西,但是似乎sort并没有对数组进行完全排序。
这是我尝试过的:
$ kotlinc
Welcome to Kotlin version 1.2.71 (JRE 10.0.2+13-Ubuntu-1ubuntu0.18.04.2)
Type :help for help, :quit for quit
>>> var test: String = "This is a test of the user system."
>>> var testarray2: Array<String> = test.split(" ").toTypedArray()
>>> testarray2.sort()
>>> testarray2.forEach { println("${it} ") }
This
a
is
of
system.
test
the
user
>>>
如您所见,排序似乎不是对字符串“ This”进行排序。
我尝试安装openjdk-11并更新我的所有软件包,但仍在获取该错误,并检查了1.2.71是最新的Kotlin软件包。
我做错什么了吗?
谢谢。
答案 0 :(得分:2)
如果您进行这样的排序:
testarray2.sortBy { it.toLowerCase() }
它将根据您的需要进行排序。
sort()
方法使用字符的ASCII码比较字符串,并且所有大写字符的ASCII码都小于小写的ASCII码,因此您得到的结果似乎不对。
另一方面,it.toLowerCase()
会在排序之前将所有字符串转换为小写,这样您就可以进行不区分大小写的排序。