我正在編寫一個語言應用程序,並且我有一長串與該語言相關的詞彙表(如果有人感興趣,可以使用德語)。我有我的應用程序中的功能之間進行切換按德語單詞或英文單詞排序tableview。在對數組進行排序時忽略某些字符串
當我使用以下命令:
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:)];
它工作萬無一失了 - 我指的是,正是因爲預期。然而,我想改善這一點的是,有些詞語,比如動詞或名詞,前面總是有前綴,比如「to」,比如「做某事」,或者「the」名詞。所以我想要做的是以某種方式排除我的排序,因爲否則我會在我的數組的「t」部分按字母順序排序所有動詞,這不是很方便用戶。
我已經瀏覽了關於NSString和NSArray的Apple文檔,因爲這是compare
函數的地方(除非我非常誤會),而且我還沒有找到任何對我有意義的方法。這是我第一次做這樣的數據處理,所以我可能會錯過簡單的東西,所以我非常感謝一些幫助。
非常感謝
Michaeljvdw
這看起來非常像我想要的,但是當你說replaceOccurrencesOfString時:@「das」withString @「」...因爲我實際上需要「das」 (等)留在數組中,我只是需要從排序中忽略它。這個代碼解決了這個問題嗎感謝您的回答,感謝您的幫助。 – Michaeljvdw 2010-12-06 08:02:54
是的,該代碼實際上做的是創建被比較的字符串的副本,然後修改這些以刪除任何文章和空白。也就是說,回想起來,出於性能原因,可能更有意義*不*修改字符串,而是使用`compare:options:range:locale:`來比較兩個字符串的子範圍。 – 2010-12-06 09:18:06