我有一个字符串“Number:0.3456”
如何删除“Number:”部分以使用NSRange
从中提取双精度值“0.3456”?
答案 0 :(得分:1)
如果Number: X.XXX
是固定模式,您可以执行类似
NSString * string = @"Number: 0.3456";
NSString * prefix = @"Number: ";
NSString * doubleString = [string substringFromIndex:prefix.length];
double yourDouble = [doubleString doubleValue];
如果您真的想使用NSRange
,可以执行类似
NSString * string = @"Number: 0.3456";
NSString * substringToRemove = @"Number: ";
NSRange substringRange = [string rangeOfString:substringToRemove];
NSString * doubleString = [string stringByReplacingCharactersInRange:substringRange
withString:@""];
double yourDouble = [doubleString doubleValue];
主要区别在于第二个示例将从原始字符串中删除 {/ 1}}字符串的每个,而第一个将删除前缀。
答案 1 :(得分:0)
我建议你使用[NSScanner scanDouble:]
答案 2 :(得分:0)
只要先设置扫描位置,就可以使用NSScanner:
double result;
NSString *str = @"Number: 0.3456";
NSScanner *scanner = [NSScanner scannerWithString:str];
[scanner setScanLocation:[@"Number: " length]];
[scanner scanDouble:&result];
请记住,scanDouble:
会返回YES
或NO
来指示扫描是否成功。