Поиск значений в строке IOS
Я пытаюсь вывести значения в строке в приложении для iOS. У меня есть NSString в формате:
loc: 32 3203 292 293 321
Я хочу сохранить все пять целых чисел в 5 различных переменных int. Целые числа имеют различную длину. В настоящее время я пытаюсь определить, какое целое число я использую, используя пробел в качестве ориентира, но у меня возникли проблемы. Должен быть более простой способ сделать это.
Вот что у меня есть:
int length = [locationString length];
NSMutableString * xStr, * yStr,* zStr, *tiltStr, *panStr;
int charIndex = -1;
unichar cur;
for(i = 3; i < length; i++)
{
cur = [locationString characterAtIndex:i];
if(cur == ' ') charIndex++;
else
{
if(charIndex == 0)
{
[xStr appendString:[NSString stringWithCharacters:&cur length:1]];
}
else if(charIndex == 1)
{
[yStr appendString:[NSString stringWithCharacters:&cur length:1]];
}
else if(charIndex == 2)
{
[zStr appendString:[NSString stringWithCharacters:&cur length:1]];
}
else if(charIndex == 3)
{
[tiltStr appendString:[NSString stringWithCharacters:&cur length:1]];
}
else if(charIndex == 4)
{
[panStr appendString:[NSString stringWithCharacters:&cur length:1]];
}
}
}
NSLog(@"x String: %@", xStr);
NSLog(@"y String: %@", yStr);
NSLog(@"z String: %@", zStr);
NSLog(@"tilt String: %@", tiltStr);
NSLog(@"pan String: %@", panStr);
if(xStr != NULL) xVal = [xStr integerValue];
if(yStr != NULL) yVal = [yStr integerValue];
if(zStr != NULL) zVal = [zStr integerValue];
if(tiltStr != NULL) tiltVal = [tiltStr integerValue];
if(panStr != NULL) panVal = [panStr integerValue];
Но я получаю пустые строки каждый раз. Кто-нибудь еще делал что-то подобное раньше?
Спасибо
2 ответа
Я бы начал с
[locationString componentsSeparatedByString:@" "];
Это даст вам массив с каждым строковым компонентом.
Затем вы можете игнорировать индекс 0, который будет содержать @"loc:", а остальные индексы массива будут содержать данные, которые вы будете использовать.
Я думаю, вы должны рассмотреть возможность использования API NSString componentsSeparatedByString, чтобы сделать вашу жизнь проще. Вы получите NSArray строк, используя [locationString componentsSeparatedByString:@" "]
и ваши целые числа будут в единицах 1-5