如何从字符串中提取值

时间:2011-11-22 06:02:08

标签: iphone objective-c nsstring

我有一个字符串...... "<+36.83452988, -119.79611969> +/- 0.00m (speed -1.00 mps / course -1.00) @ 11/21/11 8:12:18 PM India Standard Time"

我希望从中提取坐标。怎么办呢?

2 个答案:

答案 0 :(得分:1)

乔纳斯有一个简单的基本想法,只是不是用你的语言。 它很简单,最后会有x和y坐标。

您可以使用NSString rangeOfString:substringWithRange:方法自行实施Jonas建议,并担心使用此行后的空格

[string stringByReplacingOccurrencesOfString:@" " withString:@""];

以下代码将采用您的示例字符串,并根据您的喜好将其分解为字符串和浮点值。

NSString * string = @"<+36.83452988, -119.79611969> +/- 0.00m (speed -1.00 mps / course -1.00) @ 11/21/11 8:12:18 PM India Standard Time>";
NSRange startX = [string rangeOfString:@"<"];
NSRange endX = [string rangeOfString:@","];
NSRange endY = [string rangeOfString:@">"];

NSRange xRange;
xRange.location = startX.location+1;
xRange.length = endX.location - startX.location -1;

NSRange yRange;
yRange.location = (xRange.length + xRange.location) + 1;
yRange.length = endY.location - yRange.location;

float x = [[string substringWithRange:xRange] floatValue];
float y = [[string substringWithRange:yRange] floatValue];

NSLog(@"xString-- %@\nyString-- %@", [string substringWithRange:xRange], [string substringWithRange:yRange]);
NSLog(@"%f, %f", x,y);

答案 1 :(得分:0)

如果坐标是String的第一部分,你应该根据某些字符得到子字符串,如:

String x = s.substring(s.indexOf('<')+1, s.indexOf(',')).trim();
String y = s.substring(s.indexOf(',')+1, s.indexOf('>')).trim();

这是在&lt;然后介于之间,和&gt;。

此致

纳斯