私は、特定の右から左への文字列に1つの単語の部分文字列が含まれるかどうかを判断するための最も迅速で簡単な方法を探しています。
注目に値する場合は、ObjectiveCとiPhoneアプリを使用してアルゴリズムを実装します。また、このアルゴリズムを検索したところ、KMPやBMなどのアルゴリズムが見つかりました。これらのアルゴリズムは、私が考えたように、複数の単語の部分文字列に使用されるものでした。私の仮定が間違っている場合は、私に知らせてください!
よろしくお願いします、iLyrical。
どうですか:
if([string rangeOfString:@" foo "].location != NSNotFound)
//I found it, yippee!!
編集私は右から左の文字列でそれを試したことがありませんが....そしてこれは最初または最後の単語と一致しないことを理解しています...したがって、この後、それらもチェックする必要があります:-S
別の編集 正規表現を使用することもできます。クラスではこれNSRegularExpression
を行うことができます。あなたがそれを望むもの\s*foo\s*
簡単で効率的な方法は、文字列を分割し、その単語がハッシュテーブルに存在するかどうかを確認することで、すべての単語の辞書(ハッシュテーブル)を作成することです。
NSString *string = @"abc def xyz";
if ([string rangeOfString:@"abc"].location == NSNotFound) {
NSLog(@"string does not contain abc");
}
else {
NSLog(@"string contains abc");
}
願わくば、これはあなたになります...
あなたが言葉を正確に比較することを意味するならば、それは何の価値もありません。最も簡単な方法は、1つずつ比較することであり、親文字列を1回読み取るだけで済みます。