Kotlin-programma om het aantal klinkers en medeklinkers in een zin te tellen

In dit programma leer je het aantal klinkers, medeklinkers, cijfers en spaties in een bepaalde zin in Kotlin te tellen.

Voorbeeld 1: programma om klinkers, medeklinkers, cijfers en spaties te tellen

 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") )

Wanneer u het programma uitvoert, is de uitvoer:

 Klinkers: 6 medeklinkers: 11 cijfers: 3 witruimten: 3

In het bovenstaande voorbeeld hebben we 4 voorwaarden voor elk van de controles.

  • De eerste if-voorwaarde is om te controleren of het karakter een klinker is of niet.
  • De else if-voorwaarde die volgt op if is om te controleren of het karakter een medeklinker is of niet. De volgorde zou hetzelfde moeten zijn, anders worden alle klinkers ook als medeklinkers behandeld.
  • De derde voorwaarde (else-if) is om te controleren of het teken tussen 0 en 9 ligt of niet.
  • Ten slotte is de laatste voorwaarde om te controleren of het teken een spatie is of niet.

Hiervoor hebben we de regel verlaagd met toLowerCase(). Dit is een optimalisatie die is uitgevoerd om niet te controleren op A tot Z met hoofdletters en klinkers.

We hebben de length()functie gebruikt om de lengte van de string te weten en charAt()om het teken op de gegeven index (positie) te krijgen.

Hier is de equivalente Java-code: Java-programma om het aantal klinkers en medeklinkers in een zin te tellen.

Voorbeeld 2: programma om klinkers, medeklinkers, cijfers en spaties te tellen met wanneer

 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") )

De output van het programma is hetzelfde als in Voorbeeld 1.

Hier kunt u zien dat we een eenvoudige whenuitdrukking hebben gebruikt om de if-elseverklaring te verwijderen . Dit maakt de code ook een stuk minder en gemakkelijker te begrijpen.

Interessante artikelen...