2011-11-03 47 views
0

我是iOS新手,所以请原谅我,如果这是初学者级别的问题。iOS - 使用空格解析字符串

我有一个字符串“hu_HU匈牙利:匈牙利”,我想把它放入一个像{“hu”,“HU”,“匈牙利:匈牙利”}的数组。我将如何解析它以删除空白,然后是下划线? NSString的

回答

2

使用componentsSeparatedByCharactersInSet:方法来获得你必须改变“_”到“”或反之亦然预期的效果。然后你可以使用componentsSeparatedByString,像这样:

NSString *source = @"hu_HU Hungary:Hungarian"; 
source = [source stringByReplacingOccurrencesOfString:@"_" withString:@" "]; 
NSArray *components = [source componentsSeparatedByString:@" "]; 
NSLog(@"%@",components); 
0
NSString *theStr = @"hu_HU Hungary:Hungarian"; 
NSArray *pieces = [theStr componentsSeparatedByCharactersInSet: [NSCharacterSet characterSetWithCharactersInString: @"_ "]]; 
//pieces = {"hu", "HU", "Hungary:Hungarian"} 

pieces = [theStr componentsSeparatedByCharactersInSet: [[NSCharacterSet alphanumericCharacterSet] invertedSet]]; 
//pieces = {"hu", "HU", "Hungary", "Hungarian"} 
//the motivation for this is a better defined set of non-alphanumeric characters 
0

给你:

NSString *myString = @"hu_HU Hungary:Hungarian"; 
myString = [myString stringByReplacingOccurrencesOfString:@"_" withString:@" "]; 
NSArray *myArray = [myString componentsSeparatedByString:@" "]; 
0

所有这些问题的答案共享一个恼人的问题。他们认为这些项目是由一个空间隔开的。

NSString *theStr = @"hu_HU Hungary:Hungarian"; 
NSArray *pieces = [theStr componentsSeparatedByCharactersInSet: [NSCharacterSet characterSetWithCharactersInString: @"_ "]]; 
//pieces = {"hu", "HU", "Hungary:Hungarian"} 

NSString *theStr = @"hu_HU Hungary:Hungarian"; // note extra space 
NSArray *pieces = [theStr componentsSeparatedByCharactersInSet: [NSCharacterSet characterSetWithCharactersInString: @"_ "]]; 
//pieces = {"hu", "HU", " ", "Hungary:Hungarian"}