Σε αυτό το πρόγραμμα, θα μάθετε να ταξινομείτε τις λέξεις των στοιχείων με λεξικογραφική σειρά χρησιμοποιώντας ένα για βρόχο και αν αλλιώς στο Kotlin.
Παράδειγμα: Πρόγραμμα ταξινόμησης συμβολοσειρών σε σειρά λεξικών
fun main(args: Array) ( 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)) ) )
Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:
Σε λεξικογραφική σειρά: C Java Python Ruby
Στο παραπάνω πρόγραμμα, η λίστα των 5 λέξεων προς ταξινόμηση αποθηκεύεται σε μια μεταβλητή, λέξεις.
Στη συνέχεια, περνάμε κάθε λέξη (λέξεις (i)) και τη συγκρίνουμε με όλες τις λέξεις (λέξεις (j)) μετά από αυτήν στον πίνακα. Αυτό γίνεται χρησιμοποιώντας τη μέθοδο σύγκρισης συμβολοσειράς ().
Εάν η τιμή επιστροφής του membandingkanTo () είναι μεγαλύτερη από 0, πρέπει να αλλάξει θέση, δηλαδή οι λέξεις (i) ακολουθούν τις λέξεις (j). Έτσι, σε κάθε επανάληψη, οι λέξεις (i) περιέχουν την πρώτη λέξη.
Βήματα εκτέλεσηςΕπανάληψη | Αρχικές λέξεις | Εγώ | ι | λόγια() |
---|---|---|---|---|
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 για ταξινόμηση λέξεων με λεξικογραφική σειρά