Почему Котлин не сортирует первый элемент моего массива? - PullRequest
0 голосов
/ 27 октября 2018

Может быть, я что-то здесь упускаю, но похоже, что 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.

Я что-то не так делаю?

Заранее спасибо.

1 Ответ

0 голосов
/ 27 октября 2018

если вы выполните сортировку следующим образом:

testarray2.sortBy { it.toLowerCase() }

она будет отсортирована так, как вы хотели.Метод sort() сравнивает строки, используя коды символов ASCII, и все символы в верхнем регистре имеют коды ASCII меньше, чем коды в нижнем регистре, поэтому вы получили результат, который показался вам неправильным.С другой стороны, it.toLowerCase() преобразует все строки в нижний регистр перед сортировкой, поэтому у вас будет сортировка без учета регистра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...