文字列の検索
CoddyのSwiftジャーニー「ロジックとフロー」セクションの一部 — レッスン 3/56。
ある文字列の中に別の部分文字列が含まれているかどうかを確認するための、3つの素早いチェック方法です:
let email = "alice@coddy.tech"
print(email.contains("@")) // true
print(email.hasPrefix("alice")) // true
print(email.hasSuffix(".tech")) // truecontains は任意の部分文字列を受け取りますが、hasPrefix と hasSuffix は先頭または末尾のみを調べます。これらはすべて大文字と小文字を区別するため、それが重要な場合は、まず文字列を小文字に変換してください。
これらを ! と組み合わせることで、手軽に「欠落」のチェックができます:
if !email.contains("@") {
print("not a valid email")
}チャレンジ
簡単1行の入力を読み込みます。以下のすべてをチェックして、シンプルなメールアドレスとして検証してください:
@がちょうど1つ含まれていること(文字に対してfilter+countを使用してください)@で始まったり終わったりしていないこと.tech、.com、または.orgで終わっていること(大文字と小文字を区別しません)
すべてのチェックに合格した場合は valid を、そうでない場合は invalid を出力してください。入力値を小文字に変換したもので比較を行ってください。
入力が alice@CODDY.TECH の場合、出力は valid となります。
チートシート
文字列に部分文字列が含まれているか、または特定の文字列で開始/終了しているかを確認します:
let email = "alice@coddy.tech"
email.contains("@") // true – 文字列内のどこか
email.hasPrefix("alice") // true – 先頭
email.hasSuffix(".tech") // true – 末尾これら3つはすべて大文字と小文字を区別します。必要に応じて、最初に .lowercased() を使用してください:
email.lowercased().hasSuffix(".tech")存在しないことをテストするには ! を使用します:
if !email.contains("@") { print("not a valid email") }自分で試してみよう
let line = readLine()!
// TODO: '@'がちょうど1つであること、両端にないこと、末尾が [.tech .com .org] のいずれかであることを検証する
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。