gpt4 book ai didi

ios - 如何将印度数字转换为阿拉伯数字?

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:16:59 25 4
gpt4 key购买 nike

我正在尝试从我的应用程序调用电话,但似乎我不能,因为数字是印度格式(示例:٩٦٦٥٩٥٨٤٨٨٨٢)并且要使其正常工作,我必须将此字符串转换为阿拉伯语格式(示例: 966595848882)

我的代码:

NSString *cleanedString = [[ContactInfo componentsSeparatedByCharactersInSet:[[NSCharacterSet characterSetWithCharactersInString:@"0123456789-+()"] invertedSet]] componentsJoinedByString:@""];

NSString *phoneNumber = [@"telprompt://" stringByAppendingString:cleanedString];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]];

最佳答案

在适当的语言环境下使用 NSNumberFormatter。例如:

NSString *indianNumberString = @"٩٦٦٥٩٥٨٤٨٨٨٢";
NSNumberFormatter *nf1 = [[NSNumberFormatter alloc] init];
NSLocale *locale = [NSLocale localeWithLocaleIdentifier:@"hi_IN"];
[nf1 setLocale:locale];

NSNumber *newNum = [nf1 numberFromString:indianNumberString];
NSLog(@"new: %@", newNum);

这会打印“966595848882”。

我不是 100% 确定上面的语言环境标识符 -- hi_IN 应该是“Hindi India”。如果这不正确,请使用 [NSLocale availableLocaleIdentifiers] 获取所有已知区域设置标识符的列表,并找到一个更合适的。

更新:为了将其填充到九位数字(或任意数量),使用标准 NSString 转换回 NSString > 格式:

NSString *paddedString = [NSString stringWithFormat:@"%09ld", [newNum integerValue]];

%09ld 格式将用零填充到九位数字。

也可以使用相同的数字格式化程序执行此操作,将上面的数字转换回字符串,同时需要 9 位数字。这也给出了至少九个数字,必要时用零填充:

[nf1 setMinimumIntegerDigits:9];
NSString *reverseConvert = [nf1 stringFromNumber:newNum];

关于ios - 如何将印度数字转换为阿拉伯数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21146195/

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