私は言語アプリケーションを作成していますが、その言語に関連する長い語彙リストがあります(興味がある場合はドイツ語)。私は、アプリ内でドイツ語のテーブルビューをソートするか、英語の単語をソートするかを切り替える機能を持っています。 配列をソートするときに特定の文字列を無視する
私は次のように使用
:それは絶対に完璧に動作NSString *path = [[NSBundle mainBundle] pathForResource:name ofType:type];
NSString *string = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
NSArray *array = [[string componentsSeparatedByString:@"\n"] sortedArrayUsingSelector:@selector(compare:)];
- これによって私は意味は、まさに予想通り。しかし、私がこれを改善したいのは、動詞や名詞のような特定の単語があることです。「動かす」のように接頭辞が常に先行しています。名詞。だから私がやりたいことは、私のソートからこれらを除外してしまうのです。そうでなければ、私の動詞はアルファベット順にアルファベット順にソートされてしまいます。
私はNSStringとNSArrayに関するAppleのドキュメントを見てきました。これはcompare
の機能が(私が間違いでない限り)あり、私にとって意味のあるものは見つけられませんでした。このようなデータ処理を行ったのは今回が初めてのことですので、単純なものが不足している可能性がありますので、本当に助けていただければ幸いです。
どうもありがとうございました
Michaeljvdw
これは、私が欲しいものに非常によく似ていますが、replaceOccurrencesOfStringと言ったときにコード内のビットによって混乱します。@ "das" withString @ "" ...実際には "das" (など)配列にとどまるために、私はそれを無視する必要があります。このコードはそれに対処していますか?途中で回答してくれてありがとう、私はあなたの助けに感謝します。 – Michaeljvdw
うん、実際には、比較対象の文字列の複製を作成し、それを修正して記事と空白を削除します。つまり、単に文字列を変更するのではなく、代わりに 'compare:options:range:locale:'を使用してパフォーマンス上の理由から両方の文字列の部分範囲を比較する方が意味があるかもしれません。 –