【Swift4】文字列(NSString)を任意の文字で検索(完全一致、前方一致、後方一致、部分一致)する方法【Obbjective-C】
文字列の中に任意の文字があるかどうか、検索する方法をご紹介します。
検索には、完全一致・前方一致・後方一致・部分一致の4種類があります。それぞれの用途に合わせて使用するといいでしょう。
完全一致
文字列Aと文字列Bが完全に一致しているか確認する方法です。
Swift4
var string : String = "abcdefg"
if string == "abcdefg" { // true
print("一致")
}
else {
print("不一致")
}
SwiftではObjectice-Cでよく使う「isEqualToString」の代わりに「==」で判定が可能です。
var string : String = "abcdefg"
let comparisonResult : ComparisonResult = string.compare("abcdefg")
if comparisonResult == .orderedSame { // true
print("一致")
}
else {
print("不一致")
}
「==」の他に「compare」を使用した判定方法もあります。
ObjectiveーC
NSString *string = @"abcdefg";
BOOL result = [string isEqualToString:@"abcdefg"];
if (result) { // YES
NSLog(@"一致");
}
else {
NSLog(@"不一致");
}
NSString *string = @"abcdefg";
NSComparisonResult comparisonResult = [string compare:@"abcdefg"];
if(comparisonResult == NSOrderedSame) { // YES
NSLog(@"一致");
}
else {
NSLog(@"不一致");
}
前方一致
文字列Aの先頭文字列が文字列Bと一致しているか確認する方法です。
Swift4
var string : String = "abcdefg"
let result = string.hasPrefix("abc")
if (result) { // true
print("一致")
}
else {
print("不一致")
}
Objective-C
NSString *string = @"abcdefg";
result = [string hasPrefix:@"abc"];
if (result) { // YES
NSLog(@"一致");
}
else {
NSLog(@"不一致");
}
後方一致
文字列Aの後方文字列が文字列Bと一致しているか確認する方法です。
Swift4
var string : String = "abcdefg"
let result = string.hasSuffix("efg")
if (result) { // true
print("一致")
}
else {
print("不一致")
}
Objective-C
NSString *string = @"abcdefg";
result = [string hasSuffix:@"efg"];
if (result) { // YES
NSLog(@"一致");
}
else {
NSLog(@"不一致");
}
部分一致
文字列Aの中に文字列Bが含まれているか確認する方法です。
Swift4
大文字と小文字を区別する
var string : String = "abcdefg"
if string.contains("cde") { // false
print("一致")
}
else {
print("不一致")
}
大文字と小文字を区別しない
var string : String = "abcdefg"
if string.lowercased().contains("cde") { // true
print("一致")
}
else {
print("不一致")
}
Objective-C
大文字と小文字を区別する
NSString *string = @"abCDEfg";
if ([string rangeOfString:@"cde"].location != NSNotFound) { // NO
NSLog(@"一致");
}
else {
NSLog(@"不一致");
}
大文字と小文字を区別しない
NSString *string = @"abCDEfg";
if ([string rangeOfString:@"cde" options:NSCaseInsensitiveSearch].location != NSNotFound) { // YES
NSLog(@"一致");
}
else {
NSLog(@"不一致");
}