2011-05-24 123 views

回答

15

componentsSeparatedByString:拆分字符串和數組返回結果。

NSArray *myArray = [myString componentsSeparatedByString:@"+"]; 

[myArray objectAtIndex:0];//cat 
[myArray objectAtIndex:1];//dog 
[myArray objectAtIndex:2];//cow 
+3

@Sharman:只是爲了完整性:反過來是:'NSString * myString = [myArray componentsJoinedByString:@「+」];'。 – Regexident 2011-05-24 14:23:00

+0

@Anish你先生,是天才:) +1 – Supertecnoboff 2014-05-18 08:56:42

4

試試這個..

NSArray *arr = [myString componentsSeparatedByString:@"-"]; 

[arr objectAtIndex:0];//Hai 
[arr objectAtIndex:1];//Welcome 
+0

這將工作! – 2011-05-16 12:10:37

+0

不使用數組。因爲如果我使用數組有可能發生錯誤 – Christina 2011-05-16 12:12:38

+0

如果您正確地分配和釋放數組,則我有一條消息和accessmode – Christina 2011-05-16 12:12:58

1

使用NSArraycomponentsSeparatedByString:功能。

NSString string = @"hai-welcome"; 
NSArray myArray = [string componentsSeparatedByString:@"-"]; 

NSString* haiString = [myArray objectAtIndex:0]; 
NSString* welcomeString = [myArray objectAtIndex:1]; 
+0

我將在第一時間追加訪問模式,然後 - 和我的消息..我需要分開訪問模式和message.if我吐出像一個數組這將是一個問題,如果我的消息包含 - 除了我追加的字符 - – Christina 2011-05-16 12:16:04

1

這是VERT簡單..

NSString * test = @"Hello-hi-splitting-for-test"; 
NSArray * stringArray = [test componentsSeparatedByString:@"-"]; 

// Now stringArray will contain all splitted strings.. :) 

希望這有助於...

你不想再使用陣列通過每個字符迭代我...

NSMutableString * splittedString = nil; 

for(int i=0;i<test.length;i++){ 

    unichar character = [test characterAtIndex:0]; 
    if (character=='-') { 

     if (splittedString!=nil) { 
      NSLog(@"String component %@",splittedString); 
      [splittedString release]; 
      splittedString = nil; 
     } 

    } else { 
     if (splittedString==nil) { 
      splittedString = [[NSMutableString alloc] init];     
     } 
     [splittedString appendFormat:@"%C",character]; 
    } 

} 

if (splittedString!=nil) { 
    NSLog(@"String last component %@",splittedString); 
    [splittedString release]; 
    splittedString = nil; 
} 

那就是所有...

+0

我會在第一次追加訪問模式,然後 - 和我的消息..我需要分開訪問模式和message.if我吐出像一個數組它將是一個問題,如果我的消息包含 - 字符以外的字符我追加了 - Sharmain 0秒前編輯 – Christina 2011-05-16 12:16:15

0
NSArray *strArray = [myString componentsSeparatedByString:@"-"]; 

firstString = [strArray objectAtIndex:0];//Hai 
secondString = [strArray objectAtIndex:1];//Welcome 
0
NSArray *lines = [string componentsSeparatedByString:@"-"]; 

的第一個值將被存儲在的和第二個值的第0索引將被存儲在的 1號索引..

爲什麼不陣列?

0

這將是解決辦法,如果你正在處理一個字符串:

NSString *mySstring = @"hai-welcome"; 
NSMutableArray *anArray=[[NSMutableArray alloc] initWithArray:[componentsSeparatedByString: @"-"]]; 

而且每個字從0-N被存儲在相應的位置上。

試試這個。 :)

0

如果你不願意使用數組,可以考慮一下這款 -

NSString *accessMode, *message; 

NSScanner *scanner = [NSScanner scannerWithString:@"hai-welcome"]; 
NSCharacterSet *hyphenSet = [NSCharacterSet characterSetWithCharactersInString:@"-"]; 

[scanner scanUpToCharactersFromSet:hyphenSet intoString:&accessMode]; 
[scanner scanCharactersFromSet:hyphenSet intoString:nil]; 
[scanner scanUpToCharactersFromSet:[NSCharacterSet characterSetWithCharactersInString:@""] intoString:&message]; 
1
NSArray *myWords = [myString componentsSeparatedByString:@"+"]; 
1

你可以找到這個一個非常簡單的

NSString *str = @"cat+dog+cow"; 
NSArray *arr = [str componentsSeparatedByString:@"+"]; 
NSLog(@"Array items %@",arr); 

OUTPUT:

數組項 ( 貓,狗 , 牛 )

0

簡單代碼:

NSString *myString = [[NSString alloc] initWithString:@"cat+dog+cow"]; 
NSArray *resultArray = [tempString componentsSeparatedByString:@"+"]; 

NSLog(@"1. %@ 2. %@ 3. %@",[resultArray objectAtIndex:0],[resultArray objectAtIndex:1],[resultArray objectAtIndex:2]); 
0

試試這個:

NSString *str = @"cat+dog+cow" ; 
NSArray *array = [str componentsSeparatedByString:@"+"]; 
NSLog(@"%@",array) ; 
相關問題