【发布时间】:2010-11-25 21:45:34
【问题描述】:
“http://stackoverflow.com/pqr?name=XYZ&age=26”
例如,在上面的字符串中,我需要名称的值为 XYZ。怎么弄到..?
谢谢
【问题讨论】:
标签: iphone parsing nsstring nsscanner
“http://stackoverflow.com/pqr?name=XYZ&age=26”
例如,在上面的字符串中,我需要名称的值为 XYZ。怎么弄到..?
谢谢
【问题讨论】:
标签: iphone parsing nsstring nsscanner
NSURL 上有一些方法,您需要从字符串中初始化,这可能会有所帮助。例如,- (NSString *) query 将为您提供 'name=XYZ&age=26'。然后,您可以使用 componentsSeparatedByString(@"&") 收集每个参数并遍历结果数组,直到获得所需的键/值。可能是这样的:
NSURL *url = [NSURL URLFromString:incomingString];
NSString *queryString = [url query];
NSArray *queryArray = [queryString componentsSeparatedByString(@"&")];
for (NSString *query in queryArray)
{
NSArray *arg = [query componentsSeparatedByString(@"=");
if ([arg count] != 2) continue;
if ([arg objectAtIndex:0] caseInsensitiveCompare:@"SOME_KEY"] == NSOrderedSame)
{
// do something, probably with [arg objectAtIndex:1]
}
}
但是,您应该注意使用传入字符串进行编码。例如,百分比转义。
【讨论】:
尝试用 NSString 的方法拆分字符串
- (NSArray *)componentsSeparatedByCharactersInSet:(NSCharacterSet *)separator
使用“?”、“=”和“&”作为分隔符,然后就可以使用了。
【讨论】: