由於nsarray並不直接支援對漢字的排序,這就要通過將漢字轉換成拼音完畢按a~z的排序,這看起來是個頭疼的問題。由於牽扯到漢字轉為拼音,kmyhy
給出乙個較易實現的方法,獲取漢字的首字的首字母,如將「王」變成「w」.
當中他通過pinyinfirstletter函式獲取中文拼音。函式原理是:「pinyinfirstletter基於這麼乙個簡單的原理:我們知道,在objective c語言中,字串是以unicode進行編碼的。
在unicode字符集中,漢字的編碼範圍為4e00 到9fa5 之間(即從第19968開始的20902個字元是簡體中文本元)。
我們把這些字元的拼音首字母依照順序都存放在乙個char陣列中。當我們查詢乙個漢字的拼音首字母時,僅僅需把這個漢字的unicode碼(即char強制轉換為int)減去19968,然後用這個數字作為索引去找char陣列中存放的字母就可以。」函式**我也貼了過來。
NSArray利用Cocoa框架進行漢字排序
在nsstring有乙個函式localizedcompare 它的功能是通過自身與給定字串的比較,返回乙個本地化的比較結果。也就是說這個函式是支援漢字比較的。student.h inte ce student nsobject property nonatomic,copy nsstring stu...
NSArray中的資料進行排序
nsarray中的資料排序,經常是利用nssortdescriptor。組裝資料 array nsmutablearray alloc initwithcapacity 11 nsmutabledictionary dir6 nsmutabledictionary alloc initwithcap...
NSArray列印漢字的方法
1 nsarray列印漢字 通過過載 nsarray 的 nsstring descriptionwithlocale id locale方法 方法體例如以下 依據設定的locale 進行連線陣列 nsstring descriptionwithlocale id locale return str...