iOS/macOS/iPadOS/tvOS 开发:中文转拼音,中文转带声调拼音,中文提取首字母

Swift

中文转拼音(带声调)

比如:中国 -> zhōng guó

let base = "中国"
let mutableString = NSMutableString(string: base)
CFStringTransform(mutableString, nil, kCFStringTransformToLatin, false)
print(mutableString) // zhōng guó
中文转拼音(无声调)

比如:中国 -> zhong guo

let base = "中国"
let mutableString = NSMutableString(string: base)
CFStringTransform(mutableString, nil, kCFStringTransformToLatin, false)
CFStringTransform(mutableString, nil, kCFStringTransformStripDiacritics, false)
print(mutableString) // zhong guo
中文提取首字母

比如:中国 -> ZG

let base = "中国"
let mutableString = NSMutableString(string: base)
CFStringTransform(mutableString, nil, kCFStringTransformToLatin, false)

let pinyinArray = mutableString.components(separatedBy: " ")
let initials = pinyinArray.compactMap { String(format: "%c", $0.cString(using:.utf8)![0]) }
let firstCharJoin = initials.joined().uppercased()

print(firstCharJoin) // ZG

Objective-C

中文转拼音(带声调)

比如:中国 -> zhōng guó

 NSMutableString *mutableString = [[NSMutableString alloc] initWithString:@"中国"];
 CFStringTransform((__bridge CFMutableStringRef)mutableString, NULL, kCFStringTransformToLatin, NO);
 NSLog(@"%@", mutableString); // zhōng guó
中文转拼音(无声调)

比如:中国 -> zhong guo

  NSMutableString *mutableString = [[NSMutableString alloc] initWithString:@"中国"];
  CFStringTransform((__bridge CFMutableStringRef)mutableString, NULL, kCFStringTransformToLatin, NO);
  CFStringTransform((__bridge CFMutableStringRef)mutableString, NULL, kCFStringTransformStripDiacritics, false);
  NSLog(@"%@", mutableString); // zhong guo
中文提取首字母

比如:中国 -> ZG

NSMutableString *mutableString = [[NSMutableString alloc] initWithString:@"中国"];
CFStringTransform((__bridge CFMutableStringRef)mutableString, NULL, kCFStringTransformToLatin, NO);
        
NSMutableString *firstCharJoin = [[NSMutableString alloc] init];
NSArray<NSString *> *pinyinArray = [mutableString componentsSeparatedByString:@" "];
for (NSString *pinyin in pinyinArray) {
    [firstCharJoin appendFormat:@"%c", [pinyin characterAtIndex:0]];
}

NSLog(@"%@", firstCharJoin.uppercaseString); // ZG
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Harvey66

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值