Objective-C Split ()?


110

Có cách nào để chia chuỗi trong mục tiêu c thành mảng không? Ý tôi là như thế này - chuỗi đầu vào Có: 0: 42: giá trị thành một mảng (Có, 0,42, giá trị)?

Câu trả lời:


199
NSArray *arrayOfComponents = [yourString componentsSeparatedByString:@":"];

nơi chuỗi của bạn chứa @"one:two:three"

và arrayOfComponents sẽ chứa @[@"one", @"two", @"three"]

và bạn có thể truy cập từng NSString *comp1 = arrayOfComponents[0];

( https://developer.apple.com/documentation/foundation/nsstring/1413214-componentsseparatedbystring )


29
Lưu ý rằng nghịch đảo là [NSArray componentsJoinedByString:].
defos1

Tôi gặp sự cố nếu tôi gửi @ "Hello world". Nó sẽ trả về một mảng gồm 3 đối tượng, trong đó đối tượng cuối cùng chứa @ "". Tôi có thể lặp qua mảng và xóa nó, nhưng có cách nào tốt hơn không?
Au Ris

1
@AuRis thử cắt bỏ khoảng trắng khỏi chuỗi trước: [string stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceCharacterSet]];
theDuncs

95

Thử cái này:

    NSString *testString= @"It's a rainy day";
    NSArray *array = [testString componentsSeparatedByString:@" "];


4

Sử dụng cái này: [[string componentsSeparatedByString: @ ","] [0];


6
Tôi vẫn thắc mắc tại sao mọi người lại trả lời những câu hỏi đã cũ và có những câu trả lời đã có từ lâu ... Chưa kể bạn chỉ chọn phần tử đầu tiên không có ý nghĩa gì.
Christian Stewart

0

nếu bạn muốn truy cập từ đầu tiên:

[[string componentsSeparatedByString:@" "] objectAtIndex:0];
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.