2011-11-22 141 views
-2

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

我希望从中提取出坐标。如何做呢..?

+1

从哪里得到字符串?这是一个CLLocation的描述。而CLLocation有每个值 –

+0

yup的属性...我现在对某些东西感到困惑,现在我已经整理出来了......感谢您的帮助。 –

回答

1

乔纳斯配有简单的基本的想法没错,只是没有在您的语言。 它很简单,并以您的x和y坐标结束。

您可以实现自己乔纳斯建议与的NSString rangeOfString:substringWithRange:方法,并与该行

[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); 
+0

是的,对不起......在我查看Java列表之前,我没有检查这个是Objective C ...道歉。 – Jonas

0

如果坐标是你的字符串的第一部分,你应该控制一下某些字符子基地,这样的:

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

这是获得部分<之间和之间,然后,和>。

问候

乔纳斯

+3

这在objective-c中不起作用。 –