मेरे पास एक स्ट्रिंग है जैसे: @"10/04/2011"
और मैं एक और स्ट्रिंग में केवल "10" बचाना चाहता हूं। मैं उसे कैसे कर सकता हूँ?
मेरे पास एक स्ट्रिंग है जैसे: @"10/04/2011"
और मैं एक और स्ट्रिंग में केवल "10" बचाना चाहता हूं। मैं उसे कैसे कर सकता हूँ?
जवाबों:
NSArray* foo = [@"10/04/2011" componentsSeparatedByString: @"/"];
NSString* firstBit = [foo objectAtIndex: 0];
अपडेट 7/3/2018:
अब जब इस सवाल ने स्विफ्ट टैग हासिल कर लिया है, तो मुझे इसे करने का स्विफ्ट तरीका जोड़ना चाहिए। यह बहुत आसान है:
let substrings = "10/04/2011".split(separator: "/")
let firstBit = substrings[0]
हालांकि ध्यान दें कि यह आपको एक सरणी देता है Substring
। यदि आपको इन्हें वापस साधारण तारों में बदलने की आवश्यकता है, तो उपयोग करेंmap
let strings = "10/04/2011".split(separator: "/").map{ String($0) }
let firstBit = strings[0]
या
let firstBit = String(substrings[0])
[foo firstObject]
सामान्य मामले में उपयोग करना बेहतर हो सकता है क्योंकि यह खाली सरणी को भी ठीक से संभाल लेगा।
इनमें से 2:
NSString *subString = [dateString subStringWithRange:NSMakeRange(0,2)];
NSString *subString = [[dateString componentsSeparatedByString:@"/"] objectAtIndex:0];
हालांकि यह ध्यान रखें कि कभी-कभी एक तारीख स्ट्रिंग को ठीक से स्वरूपित नहीं किया जाता है और एक दिन (या उस मामले के लिए एक महीने) को 8 के रूप में दिखाया जाता है, 08 के बजाय इसलिए पहला 2 समाधानों में से सबसे खराब हो सकता है।
उत्तरार्द्ध को एक अलग सरणी में रखा जाना चाहिए ताकि आप वास्तव में लौटाई गई चीज़ की लंबाई की जांच कर सकें, इसलिए आपको किसी भी स्रोत से एक भ्रष्ट या अमान्य तारीख स्ट्रिंग के मामले में फेंका गया कोई अपवाद नहीं मिलता है।
इसका काम ठीक है
NSString *dateString = @"10/10/2010";//Date
NSArray* dateArray = [dateString componentsSeparatedByString: @"/"];
NSString* dayString = [dateArray objectAtIndex: 0];
उपयोग [myString componentsSeparatedByString:@"/"]
मैंने जेरेमीप द्वारा प्रदान किए गए अच्छे समाधान को नीचे एक अधिक सामान्य पुन: प्रयोज्य कार्य में स्वरूपित किया है :
///Return an ARRAY containing the exploded chunk of strings
+(NSArray*)explodeString:(NSString*)stringToBeExploded WithDelimiter:(NSString*)delimiter
{
return [stringToBeExploded componentsSeparatedByString: delimiter];
}