【问题标题】:How to get a part of a NSString如何获取 NSString 的一部分
【发布时间】:2010-11-25 21:45:34
【问题描述】:

“http://stackoverflow.com/pqr?name=XYZ&age=26”

例如,在上面的字符串中,我需要名称的值为 XYZ。怎么弄到..?

谢谢

【问题讨论】:

    标签: iphone parsing nsstring nsscanner


    【解决方案1】:

    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]
      }
    
    }
    

    但是,您应该注意使用传入字符串进行编码。例如,百分比转义。

    【讨论】:

      【解决方案2】:

      尝试用 NSString 的方法拆分字符串

       - (NSArray *)componentsSeparatedByCharactersInSet:(NSCharacterSet *)separator
      

      使用“?”、“=”和“&”作为分隔符,然后就可以使用了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多