私はゲームを作成しており、検索する文字列があるところまで来て、それらが実際にインポートするwords.txtファイルで定義された単語かどうかを確認しています。.txtファイルと一致する単語
私は客観的なC/IOSのファイルIOについてほとんど知っていません。検索によってsqliteとLuceneと何か関係があります。
文字列を確認するための簡単な辞書ルックアップに最適な方法は、words.txtの実際の辞書単語ですか?
私はゲームを作成しており、検索する文字列があるところまで来て、それらが実際にインポートするwords.txtファイルで定義された単語かどうかを確認しています。.txtファイルと一致する単語
私は客観的なC/IOSのファイルIOについてほとんど知っていません。検索によってsqliteとLuceneと何か関係があります。
文字列を確認するための簡単な辞書ルックアップに最適な方法は、words.txtの実際の辞書単語ですか?
これは、あなたが言及していないsqliteデータベースにファイルを保存しない限り、sqliteとは関係ありません。
(これはあなたが一度にロードしたくない巨大なファイル、この場合にはNSFileHandleを使用している場合を除く)、メモリにファイルをロードします:
あなたはこのことだろう望むものを行うための最速の方法NSError* err;
NSString* words = [NSString stringWithContentsOfFile:@"words.txt" encoding:NSUTF8StringEncoding error:&err];
// check err!
if (err) {
// handle errors
}
単語をコレクション、たとえばNSArrayのインスタンスに転送します。私たちは、単語がファイルに昏睡状態で分離されていると仮定します。
NSArray* wordsArray = [words componentsSeparatedByString:@","];
チェックあなたの言葉は、アレイ内にある場合:
NSString* wordWeLookFor = @"FooBar";
NSUInteger index = [wordsArray indexOfObjectPassingTest:
^(id obj, NSUInteger idx, BOOL *stop) {
*stop = [(NSString*)obj isEqualToString:wordWeLookFor]
return *stop;
}];
if (index != NSNotFound) {
// Found!
} else {
// Not found!
}
私はあなたが可能な問題を回避することを前提としてい複合語では、このためにステップ2と3が必要です。あなたのファイルにあまり多くの単語がなく、あなたが運が良ければ、rangeOfStringメソッドを使い、ステップ2と3をスキップすることができます。
words.txtにはいくつの単語が含まれていますか? – sch