代码之家  ›  专栏  ›  技术社区  ›  DNB5brims

如何提取nsstring中的数据?

  •  1
  • DNB5brims  · 技术社区  · 16 年前

    我有一个这样的nsstring:

    456673\t测量

    但我只想提取一些东西……… 所有数据必须采用此格式….

    XXXX 如何基于\t拆分它?谢谢您。

    2 回复  |  直到 16 年前
        1
  •  3
  •   Greg Sexton    16 年前

    您可能正在查找此实例方法:

    - (NSArray *)componentsSeparatedByString:(NSString *)separator
    

    如果这不能满足你的需求,你想要更强大的东西,我个人可以推荐 RegexKitLite . regexkitlite以类别的形式向nsstring添加正则表达式的强大功能。

        2
  •  1
  •   Wolfgang Schreurs    16 年前

    为了方便起见,我在nsstring中添加了一个类别(class:nsstring+实用程序):

    - (NSString *)substringFromFirstOccurenceOfString:(NSString *)string {
        NSRange range = [self rangeOfString:string];
    
        if (range.location != NSIntegerMax) {
            int index = range.location + range.length;
            return [self substringFromIndex:index];
        } else {
            return self;
        }
    }
    
    - (NSString *)substringFromLastOccurenceOfString:(NSString *)string {
        NSRange range = [self rangeOfString:string options:NSBackwardsSearch];
    
        if (range.location != NSIntegerMax) {
            int index = range.location + range.length;
            return [self substringFromIndex:index];
        } else {
            return self;
        }
    }
    
    - (NSString *)substringToFirstOccurenceOfString:(NSString *)string {
        NSRange range = [self rangeOfString:string];    
    
        if (range.location != NSIntegerMax) {
            int index = range.location + range.length;
            return [self substringToIndex:index];            
        } else {
            return self;
        }
    }
    
    - (NSString *)substringToLastOccurenceOfString:(NSString *)string {
        NSRange range = [self rangeOfString:string options:NSBackwardsSearch];  
    
        if (range.location != NSIntegerMax) {
            int index = range.location;
            return [self substringToIndex:index];       
        } else {
            return self;
        }
    }