日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

关于汉字拼音排序

發布時間:2023/12/31 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于汉字拼音排序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? 想要對漢字進行排序,我們需要做一下準備。

? ? 1.將漢字轉化成相應的拼音。

? ? 2.根據拼音將漢字排序。

一:漢字轉化成相應的拼音:(例如:"編碼改變世界"要轉化成“bianmagaibianshijie”)

將漢語轉化成拼音,有很多方法,有第三方庫實現,也有系統自帶的方法實現。

第三方轉化的比較常用的是由George編寫的,使用起來比較方便,這個庫轉化是將漢字轉化成漢字的拼音首字母。有興趣的同學可以自行搜索這個文件。

將漢字轉化成拼音,系統為我們提供了這一個方法,使用起來非常的方便,既然系統有這個方法,何必再找第三方庫呢?

下面是將漢字轉化成拼音的代碼:

?

NSMutableString *mutableString = [NSMutableString stringWithString:@"編碼改變世界"];CFStringTransform((CFMutableStringRef)mutableString, NULL, kCFStringTransformToLatin, false);CFStringTransform((CFMutableStringRef)mutableString, NULL, kCFStringTransformStripDiacritics, false);NSLog(@"%@",mutableString);

?

? 上面代碼的運行結果為:bian ma gai bian shi jie

可以看出上面的結果中間中間有很多的空格,我們在排序的過程中需要將中間的空格去掉。代碼如下:

mutableString =(NSMutableString *)[mutableString stringByReplacingOccurrencesOfString:@" " withString:@""];

到此為止我們已經將漢字轉化成相應的拼音了,但是如何根據拼音將漢字排序呢?

二.根據漢語拼音將數組排序;例如漢字為[“馬云”,“諸葛亮”,“王朝陽”],拼音為:[‘mayun’,'zhugeliang','wangzhaoyang']

我們想要得到的順序應該是[“馬云,”“王朝陽”,“諸葛亮”],這樣的順序,現在我們怎樣根據拼音將漢字數組排序呢?

說道此處,我們不得不提一個類,它就是NSSortDescroptor,關于這個類的方法理論在此不具體詳述,僅用代碼演示它的作用。

首先我們先創建一個新的類:people,他有兩個屬性,一個Chinese,一個pinYin

分別代表漢字,和拼音。

代碼如下:(在此假設漢字已經轉化成拼音)

1 NSMutableArray *array = [[NSMutableArray alloc]init]; 2 NSArray *arrayChinese = [NSArray arrayWithObjects:@"馬云",@"諸葛亮",@"王朝陽", nil]; 3 NSArray *arrayPinyin = [NSArray arrayWithObjects:@"mayun",@"zhugeliang",@"wangzhaoyang", nil]; 4 for (int i = 0; i < arrayChinese.count; i ++) 5 { 6 people *p = [[people alloc]init]; 7 p.chinese = arrayChinese[i]; 8 p.pinyin = arrayPinyin[i]; 9 [array addObject:p]; 10 } 11 NSArray *sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"pinyin" ascending:YES]]; 12 [array sortUsingDescriptors:sortDescriptors]; 13 for (int i = 0; i < arrayChinese.count; i ++) 14 { 15 people *p = array[i]; 16 NSLog(@"----%@",p.chinese); 17 }

? ? 上述代碼運行結果為:馬云,王朝陽,諸葛亮

總結

以上是生活随笔為你收集整理的关于汉字拼音排序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。