我正在尝试在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];
但我每次都会得到无效的字符串。其他人之前做过这样的事情吗?
由于
答案 0 :(得分:1)
我认为你应该考虑使用NSString componentsSeparatedByString API来让你的生活更轻松。你将使用[locationString componentsSeparatedByString:@" "]
得到一个NSArray字符串,你的整数将在第1-5页
答案 1 :(得分:0)
我会从
开始[locationString componentsSeparatedByString:@" "];
这将为您提供包含每个字符串组件的数组。
然后您可以忽略索引0,它将包含@“loc:”,其余的数组索引将包含您将使用的数据。