2011-09-24 8 views
7

Tôi có một số NSString có chứa một số giá trị được phân tách bằng một số ký tự khoảng trắng không xác định. Ví dụ:Chia NSString theo số khoảng trắng

NSString* line = @"1 2  3"; 

Tôi muốn chia NSString thành một NSArray các giá trị như sau: {@"1", @"2", @"3"}.

Trả lời

21

Lấy thành phần ngăn cách bởi @" " và loại bỏ tất cả các đối tượng như @"" từ mảng kết quả.

NSString* line = @"1 2  3"; 
NSMutableArray *array = (NSMutableArray *)[line componentsSeparatedByString:@" "]; 
[array removeObject:@""]; // This removes all objects like @"" 
+0

Thú vị; Tôi đã không nhận ra 'removeObject' bị xóa * tất cả * lần xuất hiện. Cảm ơn! –

+0

Giải pháp này sạch hơn. Cảm ơn bạn. –

+0

Chris Doble, Chris Ledet, Chào mừng bạn! – EmptyStack

4

này nên làm các trick (giả định các giá trị không chứa khoảng trắng):

// Gives us [@"1", @"2", @"", @"", @"", @"", @"3"]. 
NSArray *values = [line componentsSeparatedByCharactersInSet: 
    [NSCharacterSet whitespaceCharacterSet]]; 

// Remove the empty strings. 
values = [values filteredArrayUsingPredicate: 
    [NSPredicate predicateWithFormat:@"SELF != ''"]];