原文: https://www.programiz.com/kotlin-programming/examples/lexicographical-order-words
在此程序中,您将学习使用for循环和 Kotlin 中的if循环按字典顺序对元素词进行排序。
示例:按字典顺序对字符串排序的程序
fun main(args: Array<String>) {val words = arrayOf("Ruby", "C", "Python", "Java")for (i in 0..2) {for (j in i + 1..3) {if (words[i].compareTo(words[j]) > 0) {// swap words[i] with words[j[val temp = words[i]words[i] = words[j]words[j] = temp}}}println("In lexicographical order:")for (i in 0..3) {println(words[i])}}
运行该程序时,输出为:
In lexicographical order:CJavaPythonRuby
在上述程序中,要排序的 5 个单词的列表存储在变量word中。
然后,我们遍历每个单词(words[i]),并将其与数组中之后的所有单词(words[j])进行比较。 这是通过使用字符串的compareTo()方法完成的。
如果compareTo()的返回值大于 0,则必须在位置上进行交换,即word[i]在word[j]之后。 因此,在每次迭代中,words[i]包含最早的单词。
执行步骤
| 迭代 | 初始单词 | i |
j |
words[] |
|---|---|---|---|---|
| 1 | { "Ruby", "C", "Python", "Java" } |
0 | 1 | { "C", "Ruby", "Python", "Java" } |
| 2 | { "C", "Ruby", "Python", "Java" } |
0 | 2 | { "C", "Ruby", "Python", "Java" } |
| 3 | { "C", "Ruby", "Python", "Java" } |
0 | 3 | { "C", "Ruby", "Python", "Java" } |
| 4 | { "C", "Ruby", "Python", "Java" } |
1 | 2 | { "C", "Python", "Ruby", "Java" } |
| 5 | { "C", "Python", "Ruby", "Java" } |
1 | 3 | { "C", "Java", "Ruby", "Python" } |
| 最后 | { "C", "Java", "Ruby", "Python" } |
2 | 3 | { "C", "Java", "Python", "Ruby" } |
以下是等效的 Java 代码:以字典顺序对单词进行排序的 Java 程序
