gpt4 book ai didi

objective-c - 如何将字符串中的英语数字转换为 Objective-C 中的波斯语/阿拉伯语数字?

转载 作者:太空狗 更新时间:2023-10-30 03:46:37 25 4
gpt4 key购买 nike

我有一个英文字符串,可能有也可能没有数字。但我希望这些数字作为波斯数字打印在屏幕上。

例如 NSString *foo = @"a string with numbers 1 2 3;"

那么输出应该是一个包含数字123的字符串

我现在使用的代码是:

-(NSString *)convertEnNumberToFarsi:(NSString *) number{
NSString *text;
NSDecimalNumber *someNumber = [NSDecimalNumber decimalNumberWithString:number];
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
NSLocale *gbLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"fa"];
[formatter setLocale:gbLocale];
text = [formatter stringFromNumber:someNumber];
return text;
}

此方法仅转换仅包含数字的字符串,但如上所述,我想转换任何可能包含或不包含数字的字符串。

我怎样才能做到这一点?

最佳答案

简单的方法:

NSDictionary *numbersDictionary = @{@"1" : @"۱", @"2" : @"۲", @"3" : @"۳", @"4" : @"۴", @"5" : @"۵", @"6" : @"۶", @"7" : @"۷", @"8" : @"۸", @"9" : @"۹",@"0" : @"٠"};
for (NSString *key in numbersDictionary) {
str = [str stringByReplacingOccurrencesOfString:key withString:numbersDictionary[key]];
}

其他更灵活的语言环境解决方案:

NSNumberFormatter *formatter = [NSNumberFormatter new];
formatter.locale = [NSLocale localeWithLocaleIdentifier:@"ar"];
for (NSInteger i = 0; i < 10; i++) {
NSNumber *num = @(i);
str = [str stringByReplacingOccurrencesOfString:num.stringValue withString:[formatter stringFromNumber:num]];
}

注意:这段代码是在没有IDE的情况下编写的,可能会出现语法错误。

关于objective-c - 如何将字符串中的英语数字转换为 Objective-C 中的波斯语/阿拉伯语数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30479225/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com