//将汉字转换为拼音(无音标)//汉字转换为拼音后,返回大写的首字母
#import <Foundation/Foundation.h>
//类目_category:为系统类扩展方法,且扩展的方法属于该类。允许被继承下去。
@interface NSString (Characters)
//将汉字转换为拼音(无音标)
- (NSString *)pinyinOfString;
//汉字转换为拼音后,返回大写的首字母
- (NSString *)firstCharacterOfString;
@end
==================================================================
//
// NSString+Characters.m
#import "NSString+Characters.h"
@implementation NSString (Characters)
//将汉字转换为拼音
- (NSString *)pinyinOfString
{
NSMutableString * string = [[[NSMutableString alloc] initWithString:self ] autorelease];
CFRange range = CFRangeMake(0, 1);
// 汉字转换为拼音,并去除音调
if ( ! CFStringTransform((__bridge CFMutableStringRef) string, &range, kCFStringTransformMandarinLatin, NO) ||
! CFStringTransform((__bridge CFMutableStringRef) string, &range, kCFStringTransformStripDiacritics, NO)) {
return @"";
}
return string;
// -fno-objc-arc 如果出错就用,不出错别用。
}
//汉字转换为拼音后,返回大写的首字母
- (NSString *)firstCharacterOfString
{
NSMutableString * first = [[[NSMutableString alloc] initWithString:[self substringWithRange:NSMakeRange(0, 1)]] autorelease];
CFRange range = CFRangeMake(0, 1);
// 汉字转换为拼音,并去除音调
if ( ! CFStringTransform((__bridge CFMutableStringRef) first, &range, kCFStringTransformMandarinLatin, NO) ||
! CFStringTransform((__bridge CFMutableStringRef) first, &range, kCFStringTransformStripDiacritics, NO)) {
return @"";
}
NSString * result;
result = [first substringWithRange:NSMakeRange(0, 1)];
return result.uppercaseString;
}
@end
=============================================================