Objective-c从NSString中删除百分号

时间:2013-08-09 13:42:55

标签: objective-c nsstring symbols

如果我有这样的字符串:“55%”

为什么这不会占用百分号:

- (NSString*) stripPercentageSymbols : (NSString*) strToClean {

    //check to see if the number is already formatted correctly
    NSRange percentSignCheck = [strToClean rangeOfString:@"%%"];

    //only strip it if it has the %
    if (percentSignCheck.location != NSNotFound) {

        NSLog(@"ok");

        NSString* cleanedString = [strToClean substringWithRange:NSMakeRange(1, strToClean.length-2)];

        return cleanedString;
    }

    return nil;

}

1 个答案:

答案 0 :(得分:1)

NSRange percentSignCheck = [strToClean rangeOfString:@"%%"];

不正确,这里根本没有任何格式字符串。你想要

NSRange percentSignCheck = [strToClean rangeOfString:@"%"];

代替。

此外,您剪切字符串的范围也是错误的。它会删除第一个字符以及尾随百分比符号。这一行:

NSString* cleanedString = [strToClean substringWithRange:NSMakeRange(1, strToClean.length-2)];

应该是

NSString* cleanedString = [strToClean substringToIndex:strToClean.length - 1;]

代替。


顺便问一下,你为什么要用范围和东西来欺骗?

就足够了
return [strToClean stringByReplacingOccurrencesOfString:@"%" withString:@""];

代替。