如果我有这样的字符串:“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;
}
答案 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:@""];
代替。