Swiftで文字列を不等号を使って比較する方法をサンプルコードを利用して説明します。
比較する文字列には3つのパターンがそれぞれ、条件が異なります。
1. 文字列だけの比較(数字を含まない)
大文字と小文字も一致しないといけません
let str = "Hello !" // "Hello !"
let str2 = "He" + "llo" + " " + "!" // "Hello !"
let str3 = "he" + "llo" + " " + "!" // "hello !"
let result = str == str2 // "true"
let result2 = str2 == str3 // "false"
2. 数字だけの文字列の比較
数字だけの文字の場合は数学的な比較をします。
マイナスも判定できます。
let str10 = "10" // "10"
let str20 = "20" // "20"
let result = str10 < str20 // true
// マイナス
let str_20 = "-20" // "-20"
let result2 = str_20 < str10 // true
3. 数字を含む文字列の比較
数字を含む文字列は、エクセルでフィルターをかけた時と同じように比較されるようです。
サンプルコードを見てみましょう。
let a200 = "A 200"
let num = "Number"
let num1 = "Number 1"
let num10 = "Number 10"
let num100 = "Number 100"
let num2 = "Number 2"
let result = a200 < num && // true
num < num1 &&
num1 < num10 &&
num10 < num100 &&
num100 < num2
エクセルで整理したイメージ図です。
参考までに
平仮名、カタカナ、漢字も検証しました
結論、「 数字 < アルファベット < ひらがな < カタカナ < 漢字 」の関係でした。
サンプルコードを記載します。
let number = "1"
let alphabet = "a"
let hiragana = "あ"
let katakana = "ア"
let kanji = "漢字"
let result = number < alphabet && // true
alphabet < hiragana &&
hiragana < katakana &&
katakana < kanji