我是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;
}
这适用于字符串和负数,但前面带有“+”符号的数字作为字符串返回。我想我需要使用不同的数字格式,但我不知道该使用什么。
提前致谢, 布拉德
答案 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表示小数。如果第一个格式化程序不起作用,它将使用正格式转到下一个格式化程序。