将一个字符串拆分为不同的字符

use*_*273 16 string iphone split objective-c

我有一个字符串中的文本,如下所示

011597464952,01521545545,454545474,454545444|Hello this is were the message is.
Run Code Online (Sandbox Code Playgroud)

基本上我希望消息的不同字符串中的每个数字,例如

NSString *Number1 = 011597464952 
NSString *Number2 = 01521545545
etc
etc
NSString *Message = Hello this is were the message is.
Run Code Online (Sandbox Code Playgroud)

我希望从一个包含所有内容的字符串中分离出来

Bar*_*ark 45

我会用-[NSString componentsSeparatedByString]:

NSString *str = @"011597464952,01521545545,454545474,454545444|Hello this is were the message is.";

NSArray *firstSplit = [str componentsSeparatedByString:@"|"];
NSAssert(firstSplit.count == 2, @"Oops! Parsed string had more than one |, no message or no numbers.");
NSString *msg = [firstSplit lastObject];
NSArray *numbers = [[firstSplit objectAtIndex:0] componentsSepratedByString:@","];

// print out the numbers (as strings)
for(NSString *currentNumberString in numbers) {
  NSLog(@"Number: %@", currentNumberString);
}
Run Code Online (Sandbox Code Playgroud)


Eri*_*ric 5

查看NSString componentsSeparatedByString或其中一个类似的API.

如果这是一组已知的固定结果,那么您可以使用结果数组并使用它:

NSString *number1 = [array objectAtIndex:0];    
NSString *number2 = [array objectAtIndex:1];
...
Run Code Online (Sandbox Code Playgroud)

如果它是可变的,请查看NSArray API和objectEnumerator选项.