//*string是要转换的字符串*/
- (NSString *)transformMandarinToLatin:(NSString *)string
{
/*复制出一个可变的对象*/
NSMutableString *preString = [string mutableCopy];
/*转换成成带音 调的拼音*/
CFStringTransform((CFMutableStringRef)preString, NULL, kCFStringTransformMandarinLatin, NO);
/*去掉音调*/
CFStringTransform((CFMutableStringRef)preString, NULL, kCFStringTransformStripDiacritics, NO);
/*多音字处理*/
if ([[(NSString *)string substringToIndex:1] compare:@"长"] == NSOrderedSame)
{
[preString replaceCharactersInRange:NSMakeRange(0, 5) withString:@"chang"];
}
if ([[(NSString *)string substringToIndex:1] compare:@"沈"] == NSOrderedSame)
{
[preString replaceCharactersInRange:NSMakeRange(0, 4) withString:@"shen"];
}
if ([[(NSString *)string substringToIndex:1] compare:@"厦"] == NSOrderedSame)
{
[preString replaceCharactersInRange:NSMakeRange(0, 3) withString:@"xia"];
}
if ([[(NSString *)string substringToIndex:1] compare:@"地"] == NSOrderedSame)
{
[preString replaceCharactersInRange:NSMakeRange(0, 3) withString:@"di"];
}
if ([[(NSString *)string substringToIndex:1] compare:@"重"] == NSOrderedSame)
{
[preString replaceCharactersInRange:NSMakeRange(0, 5) withString:@"chong"];
}
return preString;
}
本文介绍了一个Objective-C方法,用于将中文字符串转换为不带音调的拉丁拼音。该方法使用了Core Foundation框架提供的CFStringTransform函数,并针对多音字进行了特殊处理。
435

被折叠的 条评论
为什么被折叠?



