Menu
CoddyTech

Contains 方法

本课属于 Coddy Kotlin 学习旅程的“基础知识”单元。第 82 课,共 93 课。

处理列表时,一个常见任务是检查集合中是否存在特定元素。Kotlin 提供了 contains() 方法来实现这一功能。如果找到该元素,它会返回 true,否则返回 false。

val fruits = listOf("Apple", "Banana", "Orange")
println(fruits.contains("Banana"))  // true
println(fruits.contains("Grape"))   // false

Kotlin 还提供了一种更易读的写法,使用 in 运算符,效果完全相同:

val numbers = listOf(1, 2, 3, 4, 5)
println(3 in numbers)   // true
println(10 in numbers)  // false

你也可以使用 !in 检查某个元素不在列表中:

val colors = listOf("Red", "Green", "Blue")
if ("Yellow" !in colors) {
    println("Yellow is not available")
}

这些检查也适用于字符串,你可以用它们来确认某个字符或子字符串是否存在:

val word = "Kotlin"
println('K' in word)      // true
println("otl" in word)    // true

in 运算符在条件语句中特别有用。与手动遍历列表查找元素相比,它能让代码表达得更清晰,也更易于阅读。

challenge icon

挑战

中等

你会收到一个允许使用的用户名列表,以及一个要检查的用户名。使用 in 运算符判断该用户名是否在允许列表中。

如果用户名在列表中,输出 Access granted。如果用户名不在列表中,输出 Access denied。

输入格式:

  • 第一行:一个整数 n,表示允许使用的用户名数量
  • 接下来的 n 行:表示允许使用的用户名的字符串
  • 最后一行:要检查的用户名

输出格式:

根据该用户名是否在允许列表中,输出 Access granted 或 Access denied。

示例:

如果允许列表是 ["alice", "bob", "charlie"],要检查的用户名是 bob,则输出应为:

Access granted

如果要检查的用户名是 david,则输出应为:

Access denied

亲手试试

fun main() {
    // 读取允许使用的用户名数量
    val n = readLine()!!.toInt()
    
    // 将允许使用的用户名读入列表
    val allowedUsernames = mutableListOf<String>()
    for (i in 1..n) {
        allowedUsernames.add(readLine()!!)
    }
    
    // 读取要检查的用户名
    val usernameToCheck = readLine()!!
    
    // TODO:在下方编写代码
    // 使用 'in' 运算符检查 usernameToCheck 是否在 allowedUsernames 中
    // 如果找到,输出 "Access granted";否则,输出 "Access denied"
    
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: Kotlin 在线编辑器