ios - 将任何语言的数字转换为特定语言

标签 ios nsnumberformatter nslocale

我想在离线模式下将任何语言的数字转换为英语格式 这意味着如果我在阿拉伯语中得到 10.00 ,即“١٠.٠٠”。我想将其转换回 10.00。

我找到了一些链接,但我认为在这种情况下这样做不是一个好主意。因为为此我必须为所有语言编写。 convert kABPersonPhoneProperty to arabic numbers

谁能帮我解决这个问题

最佳答案

我是这样解决的

BOOL isCommaUsingCountry = [self ifCountryCodePresentIntheList];

NSString *strAfterReplacing = @"";
if (isCommaUsingCountry)
{
    //If some numbers come like “10.000,00”
    NSString *strAfterReplacingDot = [str stringByReplacingOccurrencesOfString:@"." withString:@""];
    strAfterReplacing = [strAfterReplacingDot  stringByReplacingOccurrencesOfString:@"," withString:@"."];

    //For removing Arabic comma
    strAfterReplacing = [strAfterReplacing  stringByReplacingOccurrencesOfString:@"٫" withString:@"."];

}
else
{
    strAfterReplacing = [str stringByReplacingOccurrencesOfString:@"," withString:@""];
}

NSArray *separray = [strAfterReplacing componentsSeparatedByString:@"."];
NSString *numbersBeforeDecimal = @"";
NSString *numbersAfterDecimal = @"";
if([separray count] == 2)
{
    numbersBeforeDecimal = [separray objectAtIndex:0];
    numbersAfterDecimal = [separray objectAtIndex:1];
}

//Converting back to US format
if([strAfterReplacing length] > 0)
{
    NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
    NSLocale *usLocale = [[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"] autorelease];
    [formatter setLocale:usLocale];
    NSNumber *newNum1  = [formatter numberFromString:numbersBeforeDecimal];
    NSNumber *newNum2  = [formatter numberFromString:numbersAfterDecimal];
    numbersBeforeDecimal = [NSString stringWithFormat:@"%@", newNum1];
    numbersAfterDecimal = [NSString stringWithFormat:@"%@", newNum2];
}
NSString *combinedStr = [NSString stringWithFormat:@"%@.%@", numbersBeforeDecimal, numbersAfterDecimal];

关于ios - 将任何语言的数字转换为特定语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23808228/

相关文章:

iphone - 如何让用户持续登录 iPhone 应用程序?

ios - 使用 NSNumberFormatter 将秒转换为小时、分钟、秒

ios - 在印度语言环境中使用 NSNumberFormatter 时如何显示阿拉伯数字?

ios - 从语言名称中获取语言的 ISO 标识符

ios - 如何使用 Swift 3 在本地化条件下更改按钮字体大小

ios - 非主包文件作为警报声音

ios - body 上设置的背景图像被切断的问题 - iOS/Safari

ios - 导出为 ipa 后设备 token 发生变化

ios - 如何在 Mac/iOS 上获取当前语言环境的负号字符

swift - 如何将币种代码重命名为币种全称? swift