美文网首页干货带我飞2ios框架
根据中文排序/升序or降序

根据中文排序/升序or降序

作者: 91阿生 | 来源:发表于2015-09-15 13:55 被阅读952次

最近一直在整APP上能用的知识点,正好整到排序这个知识点,觉得似乎有点淡忘了,所以把他记录下来,和大家分享.这里用到了

#import"ChineseString.h" //此类中有两个Nsstring对象(string和pinyin)用于存放原字符串(中文)和字符串转为拼音的字符串(中文对应的拼音).

#import"pinyin.h" 

这两个类可以去我的github上下载: https://github.com/StephentTom/pinyinFile

类似

sort

A-Z:为升序; Z-A:为降序.


加入头文件

#import"ChineseString.h"

#import"pinyin.h"

@interfaceViewController()

@property(nonatomic,strong)NSArray*stringsToSort;

@end

@implementationViewController

-(NSArray*)stringsToSort{

if(!_stringsToSort){

_stringsToSort=@[@"谷歌",@"萌萌哒",@"嘿嘿见鬼了",@"推特",@"百度",@"再来一次",@"蜀山",@"键盘",@"鼠标",@"阿门",@"苹果"]; }

return_stringsToSort;

}

//没有排序的列表

for (int i= 0 ;i<self.stringsToSort.count; i++){

    NSLog(@"%@\n",[self.stringsToSortobjectAtIndex:i]);

}

未排序

// 将中文字符串赋值给类中得字符串,一个中文就是一个ChineseString对象,这里得创建一个可变数组,用来存储ChineseString对象

NSMutableArray *letterResult = [NSMutableArray array];

for(int i =0; i<self.stringsToSort.count; i++)

      ChineseString*chineseString = [ [ChineseString alloc] init]; 

      chineseString.string=self.stringsToSort[i]; 

      if(chineseString.string==nil){

            chineseString.string=@"";  }

       NSString *pinYinResult = [NSString string];  //一个中文对应一个      pinYinResult(中文的拼音)

     if( ! [chineseString.string isEqualToString: @""])

 {

     //获取中文每个字的首字母 . letter:字母         

     for(int j =0; j<chineseString.string.length; j++){

          //得到中文中每个字的首字母 

        NSString*singlePinYinLetter =                      [[NSStringstringWithFormat:@"%c",pinyinFirstLetter([chineseString.stringcharacterAtIndex:j])] uppercaseString];//中文转拼音首字母的函数: pinyinFirstLetter    uppercaseString:  表示大写字母

     //拼接中文每个字的首字母,最终得到此中文的拼音

      pinYinResult = [pinYinResultstring ByAppendingString: singlePinYinLetter]; 

     }

    chineseString.pinYin =  pinYinResult ;

}else{

    chineseString.pinYin=@""; 

      }

[letterResulta ddObject:chineseString];

}

 NSLog(@"\r\r获取了中文每个字的首字母列表:");

for(int i =0; i < letterResult.count ; i++) {

ChineseString *appendingLetter = letterResult[i];

NSLog(@"中文__%@首字母__%@",appendingLetter.string,appendingLetter.pinYin);

}

未排序 -- 得到每个中文对应的拼音 

//接下来就是对字母进行排序

// 1> 创建排序描述器

NSSortDescriptor *descriptor =  [NSSortDescriptorsortDescriptorWithKey: @"pinYin"  ascending:YES]; //yes:升序,反之. pinYin:表示要进行排序的key(kvc),之前我们把中文转为拼音的时候,chineseString.pinYin =  pinYinResult ;  我们要排序的就是pinYin

//2> 存放排序器

NSArray *descriptorArray = [NSArray arrayWithObjects: descriptor,nil];

//3>进行排序

NSArray *descriptorResult = [letterResult sortedArrayUsingDescriptors : descriptorArray];

NSLog(@"\r\r排序完成的结果:");

for(int i =0; i<descriptorResult.count; i++){

ChineseString *result = descriptorResult[i];

    NSLog(@"原文字__%@字母__%@",result.string,result.pinYin);

}

排序后的结果

}@end

相关文章

  • 根据中文排序/升序or降序

    最近一直在整APP上能用的知识点,正好整到排序这个知识点,觉得似乎有点淡忘了,所以把他记录下来,和大家分享.这里用...

  • 2018-08-12

    排序 select 语句的order by 子句,根据需要排序检索出的数据 asc(升序) desc(降序) 升序...

  • 2018-08-10 数据表的内部操作

    排序 select 语句的order by 子句,根据需要排序检索出的数据 asc(升序) desc(降序) 升序...

  • 十月二十

    根据索引进行排序 ksort()根据索引进行升序排序 krsort()根据索引进行降序排序 $arr=array(...

  • java集合升序降序以及根据字段分组

    1、根据list集合某个字段升序或者降序(//根据SumAverage字段升序排序) 2、集合list根据根据某个...

  • 集合list处理方法

    1、根据list集合某个字段升序或者降序(//根据SumAverage字段升序排序) 2、集合list根据根据某个...

  • 2018-01-14

    php数组排序 sort() - 以升序对数组排序 rsort() - 以降序对数组排序 asort() - 根据...

  • python数据分析(六)--Pandas数据特征分析

    根据索引排序根据索引进行排序:.sort_index(axis=0,ascending=True),默认升序降序将...

  • 三、不为人知的排序和筛选的高级用法

    1.基本用法 排序——可视化 开始——排序和筛选——升序/降序 数据——排序——升序/降序 选定区域(同时) 排序...

  • 排序

    排序 降序 升序 反转

网友评论

  • 1b2ae550dc99:2459736893@qq.com,谢大神的文章和分享
    91阿生:@行进的NSLog 刚上传与我的github: https://github.com/StephentTom/pinyinFile
  • 9d8bd178a546:641156127@qq.com,麻烦把那两个类共享我一份
    91阿生:@9d8bd178a546 刚上传与我的github: https://github.com/StephentTom/pinyinFile
  • 元宇宙协会:309394652@qq.com,谢谢大牛的指点,感激不尽
  • 一抹相思泪成雨:你好 可以发送下源码吗?1522144903@qq.com 谢谢!!!
  • y浪淘沙y:你好。那两个类可以共享一下吗:kingdev@126.com
    9d8bd178a546:@kingdev 能把这两个类给我份吗?641156127@qq.com
    y浪淘沙y: @91阿生 3Q
    91阿生:@kingdev 已发送

本文标题:根据中文排序/升序or降序

本文链接:https://www.haomeiwen.com/subject/lykmcttx.html