找到字符串的一部分,然后搜索字符串的另一部分

时间:2014-02-07 14:06:48

标签: ios objective-c nsstring

我希望能够在NSString中搜索某些字符,如果应用找到它,我希望它能够查找字符串的另一部分。问题是我到目前为止的代码:

- (IBAction)searchButtonTapped:(id)sender {
    NSString *data = [NSString stringWithFormat:@"http://www.example.com/example.pdf"];

    if ([data rangeOfString:@"http://"].location != NSNotFound) {

        if ([data rangeOfString:@".pdf"].location != NSNotFound) {
            NSLog(@"Found .pdf");
        } else {
        NSLog(@"Did not find .pdf");
        }
    }
}

......不起作用;它直接转到else语句而不是if语句。我该如何解决这个问题?提前谢谢。

3 个答案:

答案 0 :(得分:0)

出于某种愚蠢的原因,当我告诉它搜索不同的字符串时,它会起作用。

NSString *data = [NSString stringWithFormat:@"http://www.example.com/example.pdf"];

if ([data rangeOfString:@"http://"].location != NSNotFound) {
    NSString *dataToSearchRangeOfString = data;
    if ([dataToSearchRangeOfString rangeOfString:@".pdf"].location != NSNotFound) {
        NSLog(@"Found .pdf");
    } else {
    NSLog(@"Did not find .pdf");
    }
}

如果有人确实知道如何解决这个问题而不需要这样做,我很乐意将你的答案标记为正确。

答案 1 :(得分:0)

您当前的代码应该有效,

但你可以试试这个替代方案;

- (BOOL)isPdfUrl:(NSString*)urls {
    NSArray *elements = @[@"http", @"."];
    for (NSString *element in elements) {
        if ([urls rangeOfString:element].location == NSNotFound) {
            return NO;
        }
    }
    NSArray *possibleFiles = @[@"pdf"];
    for (NSString *file in possibleFiles) {
        if ([urls rangeOfString:file].location != NSNotFound) {
            return YES;
        }
    }
    return NO;
}

答案 2 :(得分:0)

可能是,有一些西里尔符号?例如,你可以检查'p'是不是俄语'р'。