将字符串转换为正数或负数

时间:2014-01-13 02:04:03

标签: objective-c

我是ObjC的新手。我花了几年时间在Applescript工作,我决定提升自己。我是一个最潇洒的程序员。

我有以下代码:

+(NSArray *) initArrayWithFileContents:(NSString *) theFilePath
{
    NSString *theContents = [(self) loadFile:theFilePath]; // returns the contents of a text file
    NSArray *theParagraphs = [(self) getParagraphs:theContents]; // returns the contents as an array of paragraphs

    NSMutableArray *teamData = [[NSMutableArray alloc] init]; // array of team data
    NSMutableArray *leagueData = [[NSMutableArray alloc] init]; // array of arrays

    NSNumberFormatter *numberStyle = [[NSNumberFormatter alloc] init];
    [numberStyle setNumberStyle:NSNumberFormatterDecimalStyle];

    for (NSString *currentParagraph in theParagraphs)
    {
        NSArray *currentTeam = [(self) getcolumnarData:currentParagraph];
        for (NSString *currentItem in currentTeam)
        {
            NSNumber *currentStat = [numberStyle numberFromString:currentItem];
            if (currentStat != Nil) {
                [teamData addObject:currentStat];
            } else {
                [teamData addObject:currentItem];
            }
        }
        [leagueData addObject:teamData];
        [teamData removeAllObjects];
    }

    return leagueData;
}

这适用于字符串和负数,但前面带有“+”符号的数字作为字符串返回。我想我需要使用不同的数字格式,但我不知道该使用什么。

提前致谢, 布拉德

3 个答案:

答案 0 :(得分:2)

NSNumberFormatter *numberStyle = [[NSNumberFormatter alloc] init];
[numberStyle setNumberStyle:NSNumberFormatterDecimalStyle];
[numberStyle setPositiveFormat:@"'+'#"] ;

NSNumberFormatter *numberStyle = [[NSNumberFormatter alloc] init];
[numberStyle setNumberStyle:NSNumberFormatterDecimalStyle];
[numberStyle setPositivePrefix:@"+"] ;

答案 1 :(得分:0)

如果存在+符号,您可以将其删除:

if ([currentItem hasPrefix:@"+"])
{
    currentItem = [currentItem substringWithRange:NSMakeRange(1, [currentItem length] -1)];
}

可能是一种更好的方法,但这可行。

答案 2 :(得分:0)

最终为我工作的是创建2个NSNumberFormatters;如上所述,使用setPositiveFormat:方法,1表示小数,1表示小数。如果第一个格式化程序不起作用,它将使用正格式转到下一个格式化程序。