2010-03-04 13 views
12

में किसी चरित्र की स्थिति मैंने अब घंटों की खोज की है और मुझे मेरी समस्या का हल नहीं मिला है।एनएसएसटींग या एनएसएमयूटेबलस्ट्रिंग

"स्पेसर":: [ "मान 1", "मान 2"], "स्पेसर": [ "मान 1", "मान 2"], ...

मैं एक NSString जो ऐसा दिखाई देता है

मैं स्ट्रिंग से [] वर्णों को निकालने के लिए क्या करना चाहता हूं। यह उद्देश्य-सी के साथ असंभव प्रतीत होता है। अधिकांश अन्य प्रोग्रामिंग भाषाएं स्ट्रॉप्स या इंडेक्स जैसे कार्यों की पेशकश करती हैं जो मुझे एक चरित्र या स्ट्रिंग की खोज करने और इसकी स्थिति का पता लगाने की अनुमति देती हैं। लेकिन उद्देश्य-सी में ऐसा कुछ नहीं लगता है।

क्या किसी को भी इन पात्रों को हटाने के बारे में कोई विचार है? अतिरिक्त रूप से स्ट्रिंग में [] वर्ण हैं जो रहना चाहिए, इसलिए मैं केवल एनएसएमयूटेबल स्ट्रिंग स्ट्रिंग का उपयोग नहीं कर सकता हूं। ReReplacingOccurencesOfString: withString। मुझे स्पेसर स्ट्रिंग के लिए पहले खोजना होगा और फिर केवल अगले दो [] वर्णों को हटा दें।

मेरी मदद करने के लिए धन्यवाद।

उत्तर

22

स्ट्रिंग के भीतर स्ट्रिंग की घटनाओं को ढूंढने के लिए, NSString कक्षा में श्रेणी OfXXX विधियों का उपयोग करें। तो फिर तुम NSRanges सबस्ट्रिंग को निकालने के लिए, आदि का निर्माण कर सकते

यह उदाहरण अपने नमूना स्ट्रिंग में खोलने/बंद कोष्ठक का केवल पहला सेट को हटा ...

NSString *original = @"\"spacer\": \[\"value1\", \"value2\"], \"spacer\": \[\"value1\", \"value2\"]"; 
NSLog(@"%@", original); 

NSRange startRange = [original rangeOfString:@"\["]; 
NSRange endRange = [original rangeOfString:@"]"]; 

NSRange searchRange = NSMakeRange(0, endRange.location); 
NSString *noBrackets = [original stringByReplacingOccurrencesOfString:@"\[" withString:@"" options:0 range:searchRange]; 
noBrackets = [noBrackets stringByReplacingOccurrencesOfString:@"]" withString:@"" options:0 range:searchRange]; 
NSLog(@"{%@}", noBrackets); 

String Programming Guide अधिक जानकारी के है।
आप वैकल्पिक रूप से एनएसएसकेनर वर्ग का उपयोग करने में भी सक्षम हो सकते हैं।

4

यह काम किया मुझे, एक चरित्र के सूचकांक के लिए सब कुछ निकालने के लिए के लिए इस मामले में '[':

NSString *original = @"\"spacer\": \[\"value1\", \"value2\"], \"spacer\": \[\"value1\", \"value2\"]"; 
NSRange range = [original rangeOfString:@"\["]; 
NSString *toBracket = [NSString stringWithString :[original substringToIndex:range.location] ]; 
NSLog(@"toBracket: %@", toBracket); 
संबंधित मुद्दे