Σε αυτό το πρόγραμμα, θα μάθετε να μετράτε τον αριθμό των φωνηέντων, σύμφωνα, ψηφίων και διαστημάτων σε μια δεδομένη πρόταση στο Kotlin.
Παράδειγμα 1: Πρόγραμμα μέτρησης φωνηέντων, συμφώνων, ψηφίων και κενών
fun main(args: Array) ( var line = "This website is aw3som3." var vowels = 0 var consonants = 0 var digits = 0 var spaces = 0 line = line.toLowerCase() for (i in 0… line.length - 1) ( val ch = line(i) if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u') ( ++vowels ) else if (ch in 'a'… 'z') ( ++consonants ) else if (ch in '0'… '9') ( ++digits ) else if (ch == ' ') ( ++spaces ) ) println("Vowels: $vowels") println("Consonants: $consonants") println("Digits: $digits") println("White spaces: $spaces") )
Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:
Φωνήεντα: 6 σύμφωνα: 11 ψηφία: 3 λευκά κενά: 3
Στο παραπάνω παράδειγμα, έχουμε 4 προϋποθέσεις για καθέναν από τους ελέγχους.
- Το πρώτο αν η συνθήκη είναι να ελέγξετε αν ο χαρακτήρας είναι φωνήεν ή όχι.
- Το άλλο αν η συνθήκη ακολουθεί αν είναι να ελέγξετε αν ο χαρακτήρας είναι σύμφωνος ή όχι. Η σειρά θα πρέπει να είναι η ίδια διαφορετικά, όλα τα φωνήεν αντιμετωπίζονται επίσης ως σύμφωνα.
- Η 3η συνθήκη (else-if) είναι να ελέγξετε αν ο χαρακτήρας είναι μεταξύ 0 και 9 ή όχι.
- Τέλος, η τελευταία συνθήκη είναι να ελέγξετε αν ο χαρακτήρας είναι διαστημικός χαρακτήρας ή όχι.
Για αυτό, μειώσαμε τη γραμμή χρησιμοποιώντας toLowerCase()
. Αυτή είναι μια βελτιστοποίηση που δεν έγινε για να ελέγξετε για κεφαλαία Α έως Ζ και φωνήεντα.
Έχουμε χρησιμοποιήσει τη length()
συνάρτηση για να γνωρίζουμε το μήκος της συμβολοσειράς και charAt()
να πάρουμε τον χαρακτήρα στο δεδομένο ευρετήριο (θέση).
Εδώ είναι ο αντίστοιχος κώδικας Java: Πρόγραμμα Java για την καταμέτρηση του αριθμού φωνηέντων και συμφώνων σε μια πρόταση.
Παράδειγμα 2: Πρόγραμμα για τη μέτρηση φωνηέντων, συμφώνων, ψηφίων και διαστημάτων χρησιμοποιώντας πότε
fun main(args: Array) ( var line = "This website is aw3som3." var vowels = 0 var consonants = 0 var digits = 0 var spaces = 0 line = line.toLowerCase() for (i in 0… line.length - 1) ( val ch = line(i) when (ch) ( 'a', 'e', 'i', 'o', 'u' -> ++vowels in 'a'… 'z' -> ++consonants in '0'… '9' -> ++digits ' ' -> ++spaces ) ) println("Vowels: $vowels") println("Consonants: $consonants") println("Digits: $digits") println("White spaces: $spaces") )
Η έξοδος του προγράμματος είναι ίδια με το Παράδειγμα 1.
Εδώ, μπορείτε να δείτε ότι χρησιμοποιήσαμε μια απλή when
έκφραση για να καταργήσουμε τη if-else
δήλωση. Αυτό κάνει τον κώδικα πολύ λιγότερο και ευκολότερο να κατανοηθεί επίσης.