【问题标题】:How to parse a NSString如何解析 NSString
【发布时间】:2016-04-25 05:31:49
【问题描述】:

字符串是myAgent(9953593875).Amt:Rs.594,想从中提取9953593875。这是我尝试过的:

NSRange range  =  [feDetails rangeOfString:@"."];
NSString *truncatedFeDetails = [feDetails substringWithRange:NSMakeRange(0, range.location)];
NSLog(@"truncatedString-->%@",truncatedFeDetails);

这个输出:truncatedString-->AmzAgent(9953593875)

【问题讨论】:

    标签: ios objective-c nsstring


    【解决方案1】:

    或者你这样做:

    NSString *string = @"myAgent(9953593875).Amt:Rs.594.";
    
    NSRange rangeOne = [string rangeOfString:@"("];
    NSRange rangeTwo = [string rangeOfString:@")"];
    
    if (rangeOne.location != NSNotFound && rangeTwo.location != NSNotFound) {
        NSString *truncatedFeDetails = [string substringWithRange:NSMakeRange(rangeOne.location + 1, rangeTwo.location - rangeOne.location - 1)];
        NSLog(@"%@",truncatedFeDetails);
    
    }
    

    【讨论】:

      【解决方案2】:

      喜欢

      第一步

      //首先根据.拆分字符串

      例如

      NSString *value = @"myAgent(9953593875).Amt:Rs.594.How I get 9953593875 only";
      
      NSArray *arr = [value componentsSeparatedByString:@"."];
      
      NSString * AmzAgent = [arr firstObject];  // or use  [arr firstObject];
      
      NSLog(@"with name ==%@",AmzAgent);
      

      在这里你得到myAgent(9953593875)的输出

      第二步

      在这里使用替换字符串

      AmzAgent = [AmzAgent stringByReplacingOccurrencesOfString:@"myAgent("
                                                     withString:@""];
      AmzAgent = [AmzAgent stringByReplacingOccurrencesOfString:@")"
                                                     withString:@""];
      
       NSLog(@"final ==%@",AmzAgent);
      

      最后你得到9953593875的输出

      【讨论】:

      • @"myAgent" 是动态的。它可以改变。
      • @akshay -- 哦,好吧,然后接受 lovo 答案,它会帮助你,我不想覆盖代码兄弟
      【解决方案3】:

      试试这个

      NSString *str = @"myAgent(9953593875).Amt:Rs.594.";
      NSRegularExpression *regex = [NSRegularExpression
                                    regularExpressionWithPattern:@"(?<=\\()\\d+(?=\\))"
                                    options:NSRegularExpressionCaseInsensitive
                                    error:nil];
      NSString *result = [str substringWithRange:[regex firstMatchInString:str options:0 range:NSMakeRange(0, [str length])].range];
      //result = 9953593875
      

      【讨论】:

        猜你喜欢
        • 2012-02-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-29
        • 1970-01-01
        • 1970-01-01
        • 2012-05-10
        • 1970-01-01
        相关资源
        最近更新 更多