2011-04-26 146 views
0
AERP|01,KSE;04,NCEL;05,GSE;|<END> 

这是我的字符串现在我想它在两个数组一样如何在iPhone中拆分字符串?

阵列1 = 01,04,05分裂。 数组2 = KSE,NCEL,GSE

,而忽略"AERP|" & "|<END>".

注:我的目标C的工作。

+2

你尝试过什么不起作用,你需要帮助吗?你看过NSString类的文档吗? – psychotik 2011-04-26 07:45:02

回答

3

假设|;,是的重要性递减分离,我会先移除开始和结束,然后分开数字/助记符对,然后分开对。它会去是这样的:

NSString* input = @"AERP|01,KSE;04,NCEL;05,GSE;|<END>"; 
NSArray* splits = [input componentsSeparatedByString: @"|"]; 
// In real life, check that splits has three elements 

NSString* body = [splits objectAtIndex: 1]; 
splits = [body componentsSeparatedByString: @";"]; 

NSMutableArray* numbers = [[NSMutableArray alloc] init]; 
NSMutableArray* mnemonics = [[NSMutableArray alloc] init]; 
for (NSString* item in splits) 
{ 
    NSArray* parts = [item componentsSeparatedByString: @","]; 
    if ([parts count] == 2) 
    { 
     [numbers addObject: [parts objectAtIndex: 0]]; // Could convert the part to a number here 
                 // with NSDecimalNumber numberWithString: or alternative 
     [mnemonics addObject: [parts objectAtIndex: 1]]; 
    } 
} 
3

使用NSStringcomponentsSeparatedByCharactersInSet

- (NSArray *)componentsSeparatedByCharactersInSet:(NSCharacterSet *)separator 

要构建自己的NSCharacterSet使用NSMutableCharacterSet

NSMutableCharacterSet *_alnum = [NSMutableCharacterSet [email protected]"|"]; 
+1

或使用'-componentsSeparatedByString:' – JeremyP 2011-04-26 08:13:04

1
NSString *stringToParse = [string substringWithRange:NSMakeRange(5, [string length] - 7)]; 
/* stringToParse = @"01,KSE;04,NCEL;05,GSE" */ 
NSArray *keyValuePairs = [stringToParse componentsSeparatedByString:@";"]; 
NSMutableArray *indices = [NSMutableArray array]; 
NSMutableArray *labels = [NSMutableArray array]; 
for (NSString *keyValueString in keyValuePairs) { 
    NSArray *keyValuePairing = [keyValueString componentsSeparatedByString:@","]; 
    [indices addObject:[keyValuePairing objectAtIndex:0]]; 
    [labels addObject:[keyValuePairing objectAtIndex:1]]; 
} 
1
NSString *astring= @"AERP|01,KSE;04,NCEL;05,GSE;|<END>"; 
    NSArray *aq=[astring componentsSeparatedByString:@"|"]; 
    NSString *sw=[aq objectAtIndex:1]; 
    NSArray *aq2=[sw componentsSeparatedByString:@","]; 
    NSArray *aq3=[[aq2 objectAtIndex:1] componentsSeparatedByString:@";"]; 
    NSArray *aq4=[[aq2 objectAtIndex:2] componentsSeparatedByString:@";"]; 
    NSMutableArray *a1,*a2; 
    a1=[NSMutableArray array]; 
    a2=[NSMutableArray array]; 
    [a1 addObject:[aq2 objectAtIndex:0]]; 
    [a1 addObject:[aq3 objectAtIndex:1]]; 
    [a1 addObject:[aq4 objectAtIndex:1]]; 
    [a2 addObject:[aq3 objectAtIndex:0]]; 
    [a2 addObject:[aq4 objectAtIndex:0]]; 
    [a2 addObject:[aq2 objectAtIndex:3]]; 

修改数组的名字,因为我已经在匆忙做了。