iOSで文字列の中に特定の文字列が含まれているかを判定するには?

iOSでは、NSStringのrangeOfString:メソッドを使用して、ある文字列の中に他の文字列が含まれているかどうかを判定できます。このメソッドは、指定されたサブストリングが見つかった場合は、そのサブストリングの元々の文字列における位置と長さを含むNSRange構造体を返します。見つからなかった場合は、位置がNSNotFoundの特殊なNSRange構造体を返します。

次のコード例をご覧ください。

NSString *mainString = @"Hello, World!";
NSString *subString = @"World";

NSRange range = [mainString rangeOfString:subString];
if (range.location != NSNotFound) {
    NSLog(@"字符串中包含指定的子字符串");
} else {
    NSLog(@"字符串中不包含指定的子字符串");
}

上のコードでは、主となる文字列は「Hello, World!」で、部分文字列は「World」となります。rangeOfString:メソッドが返す範囲の構造体の中のlocationは、部分文字列が主文字列の中で始まる位置を示し、lengthは部分文字列の長さを示します。部分文字列が見つからない場合は、locationはNSNotFoundになります。

注意、rangeOfString:メソッドは、デフォルトで大文字小文字を区別しますが、大文字小文字を区別したくない場合は、rangeOfString:options:メソッドを使用して、NSCaseInsensitiveSearchオプションを設定する必要があります。

また、文字列が特定のサブ文字列で始まるかどうか、または終わるかどうかを判断するだけであれば、hasPrefix: および hasSuffix: メソッドを使用できます。

NSString *mainString = @"Hello, World!";
NSString *prefix = @"Hello";
NSString *suffix = @"World";

if ([mainString hasPrefix:prefix]) {
    NSLog(@"字符串以指定的前缀开头");
} else {
    NSLog(@"字符串不以指定的前缀开头");
}

if ([mainString hasSuffix:suffix]) {
    NSLog(@"字符串以指定的后缀结尾");
} else {
    NSLog(@"字符串不以指定的后缀结尾");
}

上述コードでは、hasPrefix: メソッドは文字列が指定されたプレフィックスで始まるかどうかを判断するために使用され、hasSuffix: メソッドは文字列が指定されたサフィックスで終わるかどうかを判断するために使用されます。

bannerAds