在该程序中,您将学习计算Kotlin中给定句子中的元音,辅音,数字和空格的数量。
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") println("辅音: $consonants") println("数字: $digits") println("空格: $spaces") }
运行该程序时,输出为:
元音: 6 辅音: 11 数字: 3 空格: 3
在上面的示例中,每个检查都有4个条件。
第一个if条件是检查字符是否为元音。
if后面的else if条件用于检查该字符是否为辅音。顺序应该是相同的,否则,所有的元音也被当作辅音。
第三个条件(else if)是检查字符是否在0到9之间。
最后,最后一个条件是检查字符是否为空格字符。
为此,我们使用toLowerCase()使该行小写。这是一个没有检查大写A到Z和元音的优化。
我们使用length()函数来知道字符串的长度,使用for..in来获取给定索引(位置)处的字符。
这是等效的Java代码:用于计算句子中元音和辅音数量的Java程序。
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") println("辅音: $consonants") println("数字: $digits") println("空格: $spaces") }
该程序的输出与示例1相同。
在这里,您可以看到我们使用了一个简单的when表达式来删除if-else语句。这使得代码更少,也更容易理解。