2017-01-09 2 views
0

カタカナのリスト名は1バイト(例題)ですが、カタカナ2バイトのjで検索しますが結果はゼロです。 カタカナの検索テキストを2バイトから1バイトに変換する方法は知っていますか?私を助けてください。カタカナで検索できません1バイトと2バイト(ジとジ)

マイコード:

let filteredData = searchText.isEmpty ? employeeList : employeeList.filter({(data : employee) -> Bool in 

     return data.emp_name_kana?.range(of: searchText, options: .caseInsensitive) != nil 

    }) 

答えて

1

カタ仮名1バイトは、より良いUnicode standardのように半角カタカナとしてそれを呼んで、そのようなユニコードで​​などの文字のための適切な名前ではありません。このような文字のそれぞれは、UTF-8で1バイトを使用して表すことはできません。

あなたは、いくつかの文字列を比較する前に変換を適用することができます

let halfwidthKatakanaStr = "ザジズゼゾ" 
let fullwidthSearchText = "ジ" 

let found = halfwidthKatakanaStr.range(of: fullwidthSearchText.applyingTransform(.fullwidthToHalfwidth, reverse: false)!) != nil 
print(found) //->true 

(注)上記のコードはiOS9 +、MacOSの10.11+で動作します。古いプラットフォームをターゲットにする必要がある場合は、古典CFStringTransformを呼び出す必要があります。

+0

私のために働く、ありがとう! –

関連する問題