2011-09-22 51 views
1

我想在一個數組來分割字符串:如何分隔@「;」之前的第一個字符串在一個數組?

NSString *test = @"How are you;<random>[Good;Bad]"; 
NSArray *howareyou = [test componentsSeparatedByString:@";"] 

但後來它分裂<random>[GoodBad] ...

我只是想分裂How are you<random>[Good;Bad]

哪有我這樣做?

+0

如果你用'''劃分時說明了什麼是你需要的規則,它會有所幫助。它僅僅是第一個';'嗎? – 2011-09-22 14:43:18

+0

是的,它總是第一個; – Smoothie

回答

4
NSString *test = @"How are you;<random>[Good;Bad]"; 
NSRange colonRange = [test rangeOfString:@";"]; 
if (colonRange.location != NSNotFound){ 
    NSString *firstHalf = [test substringToIndex:colonRange.location]; 
    NSString *secondHalf = [test substringFromIndex:NSMaxRange(colonRange)]; 
    NSLog(@"%@ - %@", firstHalf, secondHalf); 
}else{ 
    NSLog(@"No luck"); 
} 
+0

或者這個。更好。我的lisp有時很明顯。 – bbum

0
NSString *test = @"How are you;<random>[Good;Bad]"; 
NSArray *howareyou = [test componentsSeparatedByString:@";"]; 

NSString *desired = [howareyou objectAtIndex:0]; 
NSString *rest = [[howareyou subarrayWithRange:NSMakeRange(1, [howareyou count]-1)] 
         componentsJoinedByString:@";"]; 

沒有得到有效的少得多(或脆 - 沒有錯誤檢查,範圍檢查,長度檢查,等...)比。這裏和那裏的長度有限,可能對於大量輸入等是不可接受的。

先測量。優化後。

相關問題