我有一個包含500個字符串(NSString
)的數組,每個數字只代表一個字符(例如:@"H"
),我將從頭到尾循環。Collection枚舉按順序搜索字符串
在這些字符串有例如字符串如@"H"
,@"e"
,@"l"
,@"l"
,@"o"
。
他們是絕對在數組中,但順序是未知的。
我想循環遍歷數組從開始到結束,並想打印出 「你好」,沒有重複。就一次。字符串@"H"
必須先發生在「ello」之前。
所以當第一個@"H"
發生時,我會開始尋找其餘的「你好」並將它們打印出來。
一直在思考這個過去一小時,我不能只是遺憾的是來什麼:
或許有一些條件,如NSPredicate
等在那裏我可以先前發現這些字符串的索引號,以便循環發生。所以我可以將它們打印出來,而不必檢查,因爲我通過陣列循環,從而利用了一堆if-else
。
例如:
NSArray *indexesThatMatchTheStrings = [......(condition => @"H", @"e", @"l", @"l", @"o").....]'
而且indexesThatMatchTheStrings
將包含匹配索引。如果條件不滿意,那麼我會事先知道我不必將它們打印出來。再次,數組內有「H」,「e」,「l」,「l」,「o」,但順序很重要。
在收藏中是否有這樣的操作?我接受任何種類的收藏和算法(即NSSet
,NSArray
,NSDictionary
等)。即使方法在C
(位移,結構,內存比較等)。有些東西快速輕量。
附錄:
要概括了一下使用情況:
是否有該框架提供的,使我們可以設置一個測試條件的集合,如任何方式或方法數組,字典或集合,在那裏我們可以根據特定的條件(在我的例子中是hello序列)來查明它們是否真的存在於其中,這樣我們可以最小化循環+比較開銷?或者甚至避免完全循環+搜索的需要,因爲我們知道搜索條件未滿足收集?你的問題的
你可以給你從一個例子輸入要查找的確切輸出的例子嗎?我可以用你的描述來想想幾個場景,只是想得到你想要的。 – Putz1103
讓我們抽象地看問題,所以我們首先找到「H」,然後我們進一步迭代找到「E」,然後再查找字符串的其餘部分。我是否正確理解你的問題? –
@ Putz1103感謝您的回覆。這個數組中有字符,並且「H」,「e」,「l」,「l」,「o」肯定存在(每個字符可以在這個數組中重複,但是順序是未知的)。我想通過在集合中使用一些快速枚舉技術/方法來檢查其中是否存在連續字符「H」「e」「l」「l」「o」。 – Unheilig