代码之家  ›  专栏  ›  技术社区  ›  Jteve Sobs

从特殊字符之间具有范围的字符串中提取字符串

  •  1
  • Jteve Sobs  · 技术社区  · 11 年前

    我有一条路径,我正在以字符串的形式检索。我想将字符串分隔成两个不同的段,但我使用的方法在数组中给了我错误的对象。

    假设我有路径:

    /Country/State/ 
    

    我正在检索它,并试图将这两个词分开,如下所示:

        NSArray *tempArray = [serverArray valueForKey:@"Location"];
    
        NSArray *country;
        for (NSString *string in tempArray) {
           country = [string componentsSeparatedByString:@"/"];
            NSLog(@"%@", country);
        }
    

    但当我这样做时,当我记录数组中的两个额外对象时:

    2015-08-13 10:54:17.290 App Name[24124:0000000] (
    "",
    USA,
    "NORTH DAKOTA",
    ""
    )
    

    如何获得第一个没有特殊字符的字符串,然后获得第二个没有特殊字符串的字符串?之后我打算使用NSScanner,但不确定是否有更有效的方法

    1 回复  |  直到 11 年前
        1
  •  1
  •   zaph    11 年前

    这是因为有前导和尾随 / 字符。

    一个选项是对初始字符串进行子串,以删除前导和尾随 / 字符。

    例子:

    NSString *location = @"/Country/State/";
    location = [location substringWithRange:NSMakeRange(1, location.length-2)];
    NSArray *components = [location componentsSeparatedByString:@"/"];
    NSLog(@"components[0]: %@, components[1]: %@", components[0], components[1]);
    NSLog(@"components: %@", components);
    

    输出:

    components[0]: Country, components[1]: State
    
    components: (
        Country,
        State
    )
    

    此外,不需要for循环。不要添加代码行,除非您知道原因并且需要它们。