2014-09-01 44 views
-3

我有這樣一個一個的NSString:如何拆分NSString並將它重新加入兩個NSStrings?

NSString* allSeats = @"1_Male,2_Female,3_Female,4_Male"; 

我想基於關鍵字分裂NSString_Male & _Female然後進行兩個單獨字符串像這樣:

NSString* maleSeats = @"1,4"; 
NSString* femaleSeats = @"2,3"; 

基於上述變量allSeats的內容。

如何分割NSString然後再創建2個獨立的字符串?

+1

閱讀文檔,然後編寫代碼。簡單。 – 2014-09-01 12:51:51

+0

你有沒有聽說過陣列? – redent84 2014-09-01 13:15:40

回答

0

你必須自己動手。沒有「全部完成」解決方案。有幾種方法可以做到這一點。

注:我沒有嘗試我的代碼,我只是寫了它,它可能甚至不編譯。但重要的是你可以完全理解它。

的一種方法是這樣:

NSString *maleSufffix = @"_Male"; 
NSString *femaleSufffix = @"_Female"; 
NSMutableArray *femaleSeatsArray = [[NSMutableArray alloc] init]; 
NSMutableArray *maleSeatsArray = [[NSMutableArray alloc] init]; 
NSArray *array = [allSeats componentsSeparatedByString:@","]; 
for (NSString *aSeat in array) 
{ 
    if ([aSeat hasSuffix:maleSuffix]) 
    { 
     [maleSeatsArray addObject:[aSeat stringByReplacingOccurencesOfString:maleSuffix withString:@""]]; 
    } 
    else if ([aSeat hasSuffix:femaleSuffix]) 
    { 
     [femalSeatsArray addObject:[aSeat stringByReplacingOccurencesOfString:femaleSuffix withString:@""]]; 
    } 
    else 
    { 
      NSLog(@"Unknown: %@", aSeat); 
    } 
} 
NSString *maleSeats = [maleSeatsArray componentsJoinedByString:@","]; 
NSString *femaleSeats = [femaleSeatsArray componentsJoinedByString:@","]; 

當然,你可以在array使用不同的方法,列舉了,用NSMutableString代替NSMutableArray(用於femaleSeatsArraymaleSeatsArray,並使用適當的方法,然後在for循環中)。

+0

不可見@interface for nSString聲明選擇器stringByReplacingOccurencesOfString:withString導致這個錯誤,如果其他條件?爲什麼 – AamirJavaid 2014-09-01 13:07:56

+0

我會告訴你如何去做。這種方法不存在,它只是有一個錯字問題:居住* rr * ences。 – Larme 2014-09-01 13:10:31

-1

我來源於Larme的線索一個想法,它的工作原理爲:

撥打方法和任何地方調用它:

- (無效)seperateSeat

{

maleSufffix = @"_Male"; 

femaleSufffix = @"_Female"; 

femaleSeatsArray = [[NSMutableArray alloc] init]; 

maleSeatsArray = [[NSMutableArray alloc] init]; 

array = [self.selectedPassengerSeat componentsSeparatedByString:@","]; 

for (aSeat in array) 
{ 
    if ([aSeat hasSuffix:maleSufffix]) 
    { 
     aSeat = [aSeat substringToIndex:[aSeat length]-5]; 
     NSLog(@"%@ is value in final seats ::",aSeat); 

     [maleSeatsArray addObject:aSeat]; 
    } 
    else if ([aSeat hasSuffix:femaleSufffix]) 
    { 
     aSeat = [aSeat substringToIndex:[aSeat length]-7]; 
     NSLog(@"%@ is value in final seats ::",aSeat); 

     [femaleSeatsArray addObject:aSeat]; 
    } 
}  

totalMales = [maleSeatsArray componentsJoinedByString:@","]; 
totalFemales = [femaleSeatsArray componentsJoinedByString:@","]; 
NSLog(@"maleSeatsAre::::%@",totalMales); 
NSLog(@"maleSeatsAre::::%@",totalFemales); 

}

相關問題