我想將此格式的字符串座標50.3332W
轉換爲等效浮點型表示-50.3332
。將座標字符串轉換爲浮點型
目前我有這樣的事情,但它只是取代W
字符,並在最後放置減號。
NSString *newtest = [_myTextField.text stringByReplacingOccurrencesOfString:@"W" withString:@"-"];
對此的任何幫助將有所幫助。
我想將此格式的字符串座標50.3332W
轉換爲等效浮點型表示-50.3332
。將座標字符串轉換爲浮點型
目前我有這樣的事情,但它只是取代W
字符,並在最後放置減號。
NSString *newtest = [_myTextField.text stringByReplacingOccurrencesOfString:@"W" withString:@"-"];
對此的任何幫助將有所幫助。
// *** Your string value ***
NSString *value = @"50.3332W";
// *** Remove `W` from string , convert it to float and make it negative by multiplying with -1.
CGFloat floatValue = [[value stringByReplacingOccurrencesOfString:@"W" withString:@""] floatValue] * -1;
// ** Result negative float value without `W` **
NSLog(@"%f",floatValue);
試試這個方法:
- (float)coordinateToFloat:(NSString*)coordinateString {
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"(\\d+\\.?\\d+?)(W)" options:NSRegularExpressionCaseInsensitive error:nil];
NSString* preffixString = [regex stringByReplacingMatchesInString:coordinateString options:0 range:NSMakeRange(0, coordinateString.length) withTemplate:@"$2$1"];
NSString* normalizedString = [preffixString stringByReplacingOccurrencesOfString:@"W" withString:@"-"];
return normalizedString.floatValue;
}
然後,你可以這樣調用:
[self coordinateToFloat:@"50.3332W"]; // Returns -50.3332
[self coordinateToFloat:@"50.3332"]; // Returns 50.3332
他可能只希望它是消極的,如果它包含' W',因爲它似乎是一個座標。 – redent84
OP沒有提到這樣的事情,我的帖子回答了OP的要求。 –
根據原來的問題,他想用'-'替換'W'。無論「W」的存在如何,您總是插入'-'。如果你的帖子回答了,這是一個錯誤的答案。 – redent84