Friday 15 April 2011

ios - Sort an NSArray of NSString by ignoring spaces -


मेरे पास

  NSArray * foo = @ [@ "शिकागो एचटीएस, आईएल ", @" शिकागो हाइट्स, आईएल ", @" शिकागो, आईएल "];   

मुझे इस तरह एक क्रमबद्ध सरणी प्राप्त करना है:

  @ [@ "शिकागो, आईएल", @ "शिकागो हाइट्स, आईएल", @ " शिकागो एचटीएस, आईएल "];   

मैंने उपयोग किया

  [foo sortedArrayUsingSelector: @selector (स्थानीयकृत CaseInsensitiveCompare :),   

जिसके परिणामस्वरूप

  @ [@ "शिकागो हाइट्स, आईएल", @ "शिकागो एचटीएस, आईएल", @ "शिकागो, आईएल"];   

इस सरणी के बारे में 100k + प्रविष्टियां हैं, ताकि रिक्त स्थान पर आधारित स्ट्रिंग को विभाजित किया जा सके और इसे सॉर्ट किया जा सके और 'अनप्लिटिंग' के परिणामस्वरूप एक खराब पर्ोफार्मन हो।

मुझे पता है कि खोजकर्ता जैसे ही 'स्थानीयकृत CaseInsensitiveCompare' जैसी फाइलें होती हैं, इसलिए मुझे लगता है कि मैं भाग्य से बाहर हूं।

मैं पहले वर्ण 'ए' पर आधारित सरणी को विभाजित करने की ओर झुकाव कर रहा हूं, खाली पर आधारित स्ट्रिंग में शामिल हो रहा हूं अंतरिक्ष, इसे सॉर्ट करें और फिर उसे तालिका में प्रदर्शित करें। दृश्य और यदि उपयोगकर्ता पहले के परिणामों के पिछले सेट को स्क्रॉल करता है, तो 'बी' के लिए ऑब्जेक्ट्स का अगला सेट प्राप्त करें, रिक्त स्थान को छोड़कर, सॉर्ट करें, शब्दों और शो में शामिल हों।

अपना तुलनित्र दें:

  NSArray * sorted = [foo sortedArrayUsingComparator: ^ NSComparisonResult (NSString * str1, NSString * str2) {// सभी स्थानों को निकालें NSString * s1 = [str1 stringByReplacingOccurrencesOfString: @ "" withString: @ ""]; NSString * s2 = [स्ट्रॉफ़ी स्ट्रिंग बिरा रीप्लीसिंग ओकुर्रेंसओफ़स्ट्रिंग: @ "" स्ट्रिंग के साथ: @ ""]; वापसी [एस 1 स्थानीयकृत सीएएसआईएनंसेंसिव कम्पेयरः एस 2]; }];    

No comments:

Post a Comment