0

文字列「Number:0.3456」があります。「Number:」の部分を削除して、double値「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];

主な違いは、2 番目の例では元の文字列からすべての文字列が削除されるNumber:のに対し、最初の例ではプレフィックスのみが削除されることです。

于 2013-01-23T22:46:52.890 に答える
0

最初にスキャンの場所を設定する限り、NSScanner を使用できます。

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

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

orをscanDouble:返すと、スキャンが成功したかどうかを示すことを忘れないでください。YESNO

于 2013-01-24T00:10:23.167 に答える
0

I suggest you use [NSScanner scanDouble:]

于 2013-01-23T23:05:32.320 に答える