我有一个字符串...... "<+36.83452988, -119.79611969> +/- 0.00m (speed -1.00 mps / course -1.00) @ 11/21/11 8:12:18 PM India Standard Time"
我希望从中提取坐标。怎么办呢?
答案 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;。
此致
纳斯