2014-02-10 17 views
1

如何獲得預定義字符串之間的子串。例如:預定義字符串之間的NSString子串

NSString* sentence = @"Here is my sentence. I am looking for {start}this{end} word"; 
NSString* start = @"{start}"; 
NSString* end = @"{end}"; 
NSString* myWord = [do some stuff with:sentence and:start and:end]; 

NSLog(@"myWord - %@",myWord); 

Log: myWord - this 
+1

看看NSString的'rangeOfString'函數。 – Putz1103

回答

2

下面會給你你想要的輸出:

NSString* sentence = @"Here is my sentence. I am looking for {start}this{end} word"; 
NSString* start = @"{start}"; 
NSString* end = @"{end}"; 

NSRange startRange = [sentence rangeOfString:start]; 
NSRange endRange = [sentence rangeOfString:end]; 

if (startRange.location != NSNotFound && endRange.location != NSNotFound) { 
    NSString *myWord = [sentence substringWithRange:NSMakeRange(startRange.location + startRange.length, endRange.location - startRange.location - startRange.length)]; 
    NSLog(@"myWord - %@", myWord); 
} 
else { 
    NSLog(@"myWord not found"); 
} 
0

您可以使用rangeOfString:得到每個標記的位置。然後使用subStringWithRange:來提取你想要的字符串部分。

NSRange startRange = [sentence rangeOfString:start]; 
NSRange endRange = [sentence end]; 
NSString myWord = [NSString subStringWithRange:NSMakeRange(startRange.location+startRange.length, endRange.location-startRange.location+startRange.length)]; 

在Safari中輸入的所有代碼,不包括錯誤處理!

0
NSRange startRange = [sentence rangeOfString:start]; 
NSRange endRange = [sentence rangeOfString:end]; 

int startLocation = startRange.location + startRange.length; 
int lenght = endRange.location - startLocation; 

NSString* myWord = [sentence substringWithRange:NSMakeRange(startLocation, lenght)]; 
相關問題