как извлечь значения из строки - PullRequest
0 голосов
/ 22 ноября 2011

У меня есть строка ... "<+36.83452988, -119.79611969> +/- 0.00m (speed -1.00 mps / course -1.00) @ 11/21/11 8:12:18 PM India Standard Time"

Я хочу извлечь из нее координаты.как это можно сделать ..?

Ответы [ 2 ]

1 голос
/ 22 ноября 2011

Джонас имеет право на простую фундаментальную идею, но не на вашем языке. Это просто и заканчивается координатами x и y для вас.

Вы можете самостоятельно реализовать предложение Jonas с помощью методов 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 голосов
/ 22 ноября 2011

Если координаты являются первой частью вашей строки, вы должны просто получить базы подстрок для определенных символов, например:

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

Это получение части между <и, а затем между и>.

Привет

Jonas

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...