【问题标题】:Get last path part from NSString从 NSString 获取最后一个路径部分
【发布时间】:2011-09-20 09:02:42
【问题描述】:

大家好,我想从字符串中提取最后一部分,它是一个四位数字 '03276' i:e http://www.abc.com/news/read/welcome-new-gig/03276

我该怎么做。

【问题讨论】:

    标签: iphone nsstring


    【解决方案1】:

    你也可以使用

    NSString *sub = [@"http://www.abc.com/news/read/welcome-new-gig/03276" lastPathComponent];
    

    【讨论】:

    • 终于有一个有用的字符串函数了!
    • 嗨@Pierre,你为什么使用'lastPathComponent'?这是什么意思?
    • @Adela 我使用了它,因为它是 NSString 的一种方法,可以完全按照要求进行操作。而且,当然,使用 API 提供的方法比编写自己的逻辑更容易。和名字所说的完全一样。它返回路径的最后一个组件。查看developer.apple.com/library/mac/documentation/Cocoa/Reference/… 了解字符串和返回值的一些示例。
    • 感谢@Pierre 的回答。
    【解决方案2】:

    如果你知道你需要多少个字符,你可以这样做:

    NSString *string = @"http://www.abc.com/news/read/welcome-new-gig/03276";
    NSString *subString = [string substringFromIndex:[string length] - 5];
    

    如果你只知道它是最后一个斜线之后的部分,你可以这样做:

    NSString *string = @"http://www.abc.com/news/read/welcome-new-gig/03276";
    NSString *subString = [[string componentsSeparatedByString:@"/"] lastObject];
    

    【讨论】:

      【解决方案3】:

      由于 *nix 使用与 URL 相同的路径分隔符,这也是有效的。

      [@"http://www.abc.com/news/read/welcome-new-gig/03276" lastPathComponent]
      

      【讨论】:

        【解决方案4】:

        如果你知道数字的长度,并且它不会改变,那么它可以很简单:

        NSString *result = [string substringFromIndex:[string length] - 4];
        

        【讨论】:

          【解决方案5】:

          如果字符串的最后一部分总是相同的长度(5 个字符),您可以使用此方法提取最后一部分:

          - (NSString *)substringFromIndex:(NSUInteger)anIndex
          

          使用字符串的长度来确定起始索引。

          类似这样的:

          NSString *inputStr = @"http://www.abc.com/news/read/welcome-new-gig/03276";
          NSString *newStr = [inputStr substringFromIndex:[inputStr length]-5];
          NSLog(@"These are the last five characters of the string: %@", newStr);
          

          (代码未测试)

          【讨论】:

            【解决方案6】:
            NSString *str = @"http://www.abc.com/news/read/welcome-new-gig/03276";  
            NSArray *arr = [str componentSeparatedBy:@"gig/"];  
            NSString *strSubStringDigNum = [arr objectAtIndex:1];  
            

            strSubStringDigNum 的值为 03276

            【讨论】:

              【解决方案7】:

              试试这个:

              NSString *myUrl = @"http://www.abc.com/news/read/welcome-new-gig/03276";
              
              NSString *number = [[myUrl componentsSeparatedByString:@"/"] objectAtIndex: 5];
              

              【讨论】:

              猜你喜欢
              • 2019-07-24
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-04-24
              • 2021-10-09
              • 2012-12-26
              相关资源
              最近更新 更多