多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# Kotlin 程序:计算句子中元音和辅音的数量 > 原文: [https://www.programiz.com/kotlin-programming/examples/vowel-consonant-count-string](https://www.programiz.com/kotlin-programming/examples/vowel-consonant-count-string) #### 在此程序中,您将学习计算 Kotlin 中给定句子中的元音,辅音,数字和空格的数量。 ## 示例 1:计算元音,辅音,数字和空格的程序 ```kt fun main(args: Array<String>) { 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") } ``` 运行该程序时,输出为: ```kt Vowels: 6 Consonants: 11 Digits: 3 White spaces: 3 ``` 在上面的示例中,每个检查都有 4 个条件。 * 第一个`if`条件是检查字符是否为**元音**。 * `if`后面的`else if`条件是检查字符是否为**辅音**。 否则顺序应相同,否则所有元音也被视为辅音。 * 第三个条件(`else-if`)是检查字符是否在 **0 到 9** 之间。 * 最后,最后一个条件是检查字符是否为**空格**字符。 为此,我们使用`toLowerCase()`将行小写。 这样做是为了不检查大写的 A 到 Z 和元音的优化。 我们使用`length()`函数来了解字符串的长度,并使用`charAt()`来获取给定索引(位置)处的字符。 这是等效的 Java 代码: [Java 程序:计算句子中的元音和辅音数量](/java-programming/examples/vowel-consonant-count-string "Java program to count number of vowels and consonants in a sentence")。 * * * ## 示例 2:使用`when`计数元音,辅音,数字和空格的程序 ```kt fun main(args: Array<String>) { 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`语句。 这使得代码少了很多,也更容易理解。