大文字・小文字とトリム
CoddyのSwiftジャーニー「ロジックとフロー」セクションの一部 — レッスン 2/56。
大文字・小文字を変換するメソッドは新しい文字列を返し、元の文字列は変更しません。ユーザーから入力されたテキストを比較する前に、これらのメソッドを使用してください。
let raw = " Hello World "
print(raw.uppercased()) // " HELLO WORLD "
print(raw.lowercased()) // " hello world "先頭と末尾の空白を削除するには、Foundation(このプラットフォームでは既にインポートされています)の trimmingCharacters(in:) を使用します:
let cleaned = raw.trimmingCharacters(in: .whitespaces)
print(cleaned) // "Hello World"
print(cleaned.count) // 11.whitespaces はスペースとタブをカバーします。入力に末尾の \n が含まれる可能性がある場合は、.whitespacesAndNewlines を使用してください。
チャレンジ
初心者2行の入力を読み取ります。両方を文字列として扱い、前後の空白を無視して、大文字と小文字を区別せずに比較してください。以下を出力します:
- クリーンアップ(トリミング)および小文字化されたバージョンが等しい場合は
match、そうでない場合はdiffer - 1行目のクリーンアップ(トリミング)されたバージョンを大文字で出力
1行目の入力が Hello World で、2行目が HELLO world の場合、出力は以下のようになります:
match
HELLO WORLDチートシート
文字列の大文字・小文字変換メソッドは、新しい文字列を返します(元の文字列は変更されません):
str.uppercased() // "hello" → "HELLO"
str.lowercased() // "HELLO" → "hello"trimmingCharacters(in:) を使用して、先頭および末尾の空白を削除します:
let cleaned = raw.trimmingCharacters(in: .whitespaces) // スペースとタブ
let cleaned = raw.trimmingCharacters(in: .whitespacesAndNewlines) // \n を含む自分で試してみよう
let a = readLine()!
let b = readLine()!
// TODO: 比較のためにトリミングと小文字化を行う。match/differを表示した後、トリミングして大文字化したaを表示する
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。