【问题标题】:How to extract substring from a string in ios?如何从ios中的字符串中提取子字符串?
【发布时间】:2023-04-10 12:22:01
【问题描述】:

我知道这是被问到最多的问题之一,但我不知道如何真正做到这一点。 这是我的字符串 ====> @"latitude - 51.50998000 , longitude - -0.13370000"。

我只想从中提取数值。如何做到这一点?有什么想法吗?

【问题讨论】:

标签: nsstring nsrange


【解决方案1】:
// Obtaining latitude string
NSString *locationString = @"latitude - 51.50998000 , longitude - -0.13370000";
NSRange latStringRange = NSMakeRange(11, 10);
NSString *latitudeSubstring = [locationString substringWithRange:latStringRange];
NSLog(@"Latitude substring is :- %@",latitudeSubstring);


//Obtaining longitude string
NSString *locString = @"latitude - 51.50998000 , longitude - -0.13370000";
NSRange longsStringRange = NSMakeRange(37, 10);
NSString *longSubstring = [locString substringWithRange:longsStringRange];
NSLog(@"Longitude substring is :- %@",longSubstring);

【讨论】:

    【解决方案2】:

    不是完美的解决方案,但可以开始:

    NSString *myString = @"latitude - 51.50998000 , longitude - -0.13370000";
    
    /* Formatter is used to convert NSString to NSNumber */
    NSNumberFormatter *formatter = [NSNumberFormatter new];
    [formatter setNumberStyle:NSNumberFormatterDecimalStyle];
    
    /* Predicate is used to filter array, we need only NSString values with length > 2 */
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"length > 2"];
    
    /* Character set is used to extract only -.0123456789 characters from string */
    NSCharacterSet *cSet = [[NSCharacterSet characterSetWithCharactersInString:@"-.0123456789"] invertedSet];
    
    /* Parse latitude and longitude values to NSArray, index 0 will be latitude and index 1 will be longitude */
    NSArray *values = [[myString componentsSeparatedByCharactersInSet:cSet] filteredArrayUsingPredicate:predicate];
    
    NSNumber *latitude = [formatter numberFromString:[values objectAtIndex:0]];
    NSNumber *longitude = [formatter numberFromString:[values objectAtIndex:1]];
    
    NSLog(@"lat: %f, long: %f", [latitude doubleValue], [longitude doubleValue]);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-17
      • 1970-01-01
      • 2011-07-21
      • 1970-01-01
      • 2012-10-24
      • 2010-11-29
      相关资源
      最近更新 更多