Containsメソッド
CoddyのKotlinジャーニー「基礎」セクションの一部。レッスン 82/93。
リストを扱う際によくあるタスクは、特定の要素がコレクションに存在するかどうかを確認することです。Kotlin では、この目的のために contains() メソッドが提供されています。このメソッドは、要素が見つかった場合は true を返し、それ以外の場合は false を返します。
val fruits = listOf("Apple", "Banana", "Orange")
println(fruits.contains("Banana")) // true
println(fruits.contains("Grape")) // falseKotlin では、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) // truein演算子は条件文で特に便利です。要素を見つけるためにリストを手動で反復処理するよりも、コードをより表現豊かで読みやすくできます。
チャレンジ
中級許可されたユーザー名のリストと、確認するユーザー名が与えられます。in演算子を使用して、そのユーザー名が許可リストに存在するかどうかを判定してください。
ユーザー名がリストにある場合は、Access grantedを出力してください。ユーザー名がリストにない場合は、Access deniedを出力してください。
入力形式:
- 1行目:許可されたユーザー名の数を表す整数
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 に存在するかを確認する
// Print "Access granted" if found, "Access denied" if not
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Kotlinプレイグラウンド