LoginSignup
5
4

More than 5 years have passed since last update.

[iOS8] Swiftで文字列を不等号を使って比較する方法

Posted at

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

エクセルで整理したイメージ図です。

スクリーンショット 2014-11-10 20.10.06

 

 参考までに


平仮名、カタカナ、漢字も検証しました


結論、「 数字  <  アルファベット  <  ひらがな  <  カタカナ  <  漢字 」の関係でした。

サンプルコードを記載します。

let number   = "1"
let alphabet = "a"
let hiragana = "あ"
let katakana = "ア"
let kanji    = "漢字"

let result   = number   < alphabet &&  // true
               alphabet < hiragana &&
               hiragana < katakana &&
               katakana < kanji
5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4