V tomto programe sa naučíte počítať v Kotline počet samohlások, spoluhlások, číslic a medzier v danej vete.
Príklad 1: Program na počítanie samohlások, spoluhlások, číslic a medzier
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") )
Po spustení programu bude výstup:
Samohlásky: 6 spoluhlások: 11 číslic: 3 Medzery: 3
Vo vyššie uvedenom príklade máme 4 podmienky pre každú z kontrol.
- Prvou podmienkou if je skontrolovať, či je znak samohláska alebo nie.
- Podmienkou else if, ktorá nasleduje, je skontrolovať, či je znak spoluhláska alebo nie. Poradie by malo byť inak rovnaké, všetky samohlásky sa tiež považujú za spoluhlásky.
- Tretia podmienka (else-if) je skontrolovať, či je znak medzi 0 a 9 alebo nie.
- Nakoniec je poslednou podmienkou kontrola, či je znak medzerou alebo nie.
Z tohto dôvodu sme riadok zmenšili pomocou toLowerCase()
. Toto je optimalizácia, ktorá sa nemá skontrolovať na veľké písmená A až Z a samohlásky.
Použili sme length()
funkciu na zistenie dĺžky reťazca a charAt()
získanie znaku na danom indexe (pozícii).
Tu je ekvivalentný kód Java: Program Java na počítanie počtu samohlások a spoluhlások vo vete.
Príklad 2: Program na počítanie samohlások, spoluhlások, číslic a medzier pomocou príkazu when
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") )
Výstup programu je rovnaký ako v príklade 1.
Tu vidíte, že when
na odstránenie if-else
príkazu sme použili jednoduchý výraz . Vďaka tomu je kód oveľa menej a tiež ľahšie pochopiteľný.