2011-06-04 11 views

उत्तर

8

आज़माएं:

NSString *substring = nil; 
NSRange newlineRange = [yourString rangeOfString:@"\n"]; 
if(newlineRange.location != NSNotFound) { 
    substring = [yourString substringFromIndex:newlineRange.location]; 
} 
1

विधि componentsSeparatedByStringhere पर एक नज़र डालें।

एक त्वरित उदाहरण संदर्भ से लिया:

NSString *list = @"Norman, Stanley, Fletcher"; 
NSArray *listItems = [list componentsSeparatedByString:@", "]; 

इस उत्पादन करेगा तार के साथ एक NSArray अलग: { @"Norman", @"Stanley", @"Fletcher" }

+1

यह काम करेगा, लेकिन यह अपर्याप्त लगता है - क्यों एक संभावित लंबी सरणी में विभाजित, केवल सभी तत्वों को फिर से जोड़ने के लिए? जैकब का जवाब, पहले \ n ढूंढना और उसके बाद शुरू होने वाली एक सबस्ट्रिंग लेना बेहतर IMHO लगता है। –

+0

असल में समयपूर्व अनुकूलन सभी बुराइयों की जड़ है :) – Jack

+1

हाँ, लेकिन एक सेन एल्गोरिदम चुनना समयपूर्व अनुकूलन नहीं है। :-) –

0

यहाँ समान कार्य जो स्ट्रिंग विभाजन है डेलीमीटर और रिटर्न सरणी द्वारा दो छंटनी मूल्यों के साथ।

NSArray* splitStrByDelimAndTrim(NSString *string, NSString *delim) 
{ 
    NSRange range = [string rangeOfString: delim]; 

    NSString *first; 
    NSString *second; 

    if(range.location == NSNotFound) 
    { 
     first = @""; 
     second = string; 
    } 
    else 
    { 
     first = [string substringToIndex: range.location]; 
     first = [first stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceCharacterSet]]; 
     second = [string substringFromIndex: range.location + 1]; 
     second = [second stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceCharacterSet]]; 
    } 

    return [NSArray arrayWithObjects: first, second, nil]; 
} 
संबंधित मुद्दे