I dette program lærer du at tælle antallet af vokaler, konsonanter, cifre og mellemrum i en given sætning i Kotlin.
Eksempel 1: Program til at tælle vokaler, konsonanter, cifre og mellemrum
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") )
Når du kører programmet, vil output være:
Vokaler: 6 konsonanter: 11 cifre: 3 hvide mellemrum: 3
I ovenstående eksempel har vi 4 betingelser for hver kontrol.
- Den første hvis betingelse er at kontrollere, om karakteren er en vokal eller ej.
- Den anden hvis betingelse, der følger efter, er at kontrollere, om karakteren er en konsonant eller ej. Ordren skal ellers være den samme, alle vokaler behandles også som konsonanter.
- Den tredje betingelse (ellers-hvis) er at kontrollere, om tegnet er mellem 0 og 9 eller ej.
- Endelig er den sidste betingelse at kontrollere, om tegnet er et mellemrumstegn eller ej.
Til dette har vi sænket linjen ved hjælp af toLowerCase()
. Dette er en optimering udført for ikke at kontrollere, om der er tale om store bogstaver A til Z og vokaler.
Vi har brugt length()
funktionen til at kende længden af strengen og charAt()
få tegnet ved det givne indeks (position).
Her er den ækvivalente Java-kode: Java-program til at tælle antallet af vokaler og konsonanter i en sætning.
Eksempel 2: Program til at tælle vokaler, konsonanter, cifre og mellemrum ved hjælp af når
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") )
Programmets output er den samme som i eksempel 1.
Her kan du se, at vi har brugt et simpelt when
udtryk til at fjerne if-else
udsagnet. Dette gør koden også meget mindre og lettere at forstå.