获取一组汉子的首字母组合

来源:互联网 发布:怎么优化宝贝标题 编辑:程序博客网 时间:2024/06/08 11:58

        获取一组汉子的首字母组合:效果是。传入字符串“我是iOS开发”,会得到“wsioskf”.

         

- (NSString *)FetchFristCharactorGroup:(NSString *)string{

    

    NSMutableString * groupStr = [NSMutableString string];

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

        NSString * aStr = [string substringWithRange:NSMakeRange(i, 1)];

        unichar unChar = [string characterAtIndex:i];

//判断:如果是字母和文字,不需要处理,直接追加到字符串后,如果是汉子,取首字母追加到到字符串后。

        if (unChar >=0x4E00 && unChar <=0x9FFF){

            [groupStr appendString:[self FetchSingleFirstCharactor:aStr]];

        }else{

            [groupStr appendString:[aStr lowercaseString]];

        }

    }

    

    return groupStr;

}

//取得汉子的首字母

- (NSString *)FetchSingleFirstCharactor:(NSString *)aString

{

   //转成了可变字符串

    NSMutableString *str = [NSMutableString stringWithString:aString];

   //先转换为带声调的拼音

    CFStringTransform((CFMutableStringRef)str,NULL, kCFStringTransformMandarinLatin,NO);

   //再转换为不带声调的拼音

    CFStringTransform((CFMutableStringRef)str,NULL, kCFStringTransformStripDiacritics,NO);

   //转化为小写拼音

    NSString *pinYin = [str lowercaseString];

   //获取并返回首字母

    return [pinYin substringToIndex:1];

}


0 0
原创粉丝点击