NSNumberFormatter 截断前导 0

NSNumberFormatter trucates leading 0's

我编写了一个将数字从阿拉伯数字转换为数字的函数。为此,我使用了 NSNumberFormatter。但问题是数字 caqn 以零开头并且 NSNumberFormatter 截断了前导零。我需要这个值,因为我必须进行比较。该数字可能不会始终以零开头。所以我不能提出任何其他条件。如果有人有解决方案,请帮助我。谢谢。

我的代码是:

-(NSString*)convertNumberFromArabic:(NSString*)numberToConvert{
    NSNumberFormatter *nf1 = [[NSNumberFormatter alloc] init];
    NSLocale *locale = [NSLocale localeWithLocaleIdentifier:@"en"];
    [nf1 setLocale:locale];

    NSNumber *newNum = [nf1 numberFromString:numberToConvert];

    NSString *reverseConvert = [nf1 stringFromNumber:newNum];

    return reverseConvert;
}

你的问题有点令人费解。你说你想 "convert a number from arabic numerals to digits",但你的方法名称说 阿拉伯语。我已经编写了从阿拉伯语转换为拉丁语的方法。如果你想得到其他方式,你只需将 YES 更改为 NO

代码如下:

-(NSString*)convertArabicDigitsToLatin:(NSString*)numberToConvert{
    NSMutableString* result = [numberToConvert mutableCopy];
    CFRange range = CFRangeMake(0, result.length);
    CFStringTransform((__bridge CFMutableStringRef)result, &range, kCFStringTransformLatinArabic, YES);
    return result;
}

这不会将字符串解释为数字,它只是将阿拉伯数字作为字符串字符音译为拉丁数字。