0

我有一个字符串 "Number: 0.3456" 如何删除 "Number:" 部分以使用它从中提取双精度值 "0.3456" NSRange

4

3 回答 3

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];

主要区别在于第二个示例将从原始字符串中删除所有出现的字符串,而第一个示例将仅删除前缀。Number:

于 2013-01-23T22:46:52.890 回答
0

我建议你使用 [NSScanner scanDouble:]

于 2013-01-23T23:05:32.320 回答
0

您可以使用 NSScanner,只要您先设置扫描位置:

double result;
NSString *str = @"Number: 0.3456";
NSScanner *scanner = [NSScanner scannerWithString:str];

[scanner setScanLocation:[@"Number: " length]];
[scanner scanDouble:&result];

请记住,scanDouble:返回YESNO指示扫描是否成功。

于 2013-01-24T00:10:23.167 回答