拆分
你可以將字串拆分為零件陣列,除以分隔符。
NSString * yourString = @"Stack,Exchange,Network";
NSArray * yourWords = [yourString componentsSeparatedByString:@","];
// Output: @[@"Stack", @"Exchange", @"Network"]
如果你需要拆分一組幾個不同的分隔符,請使用 -[NSString componentsSeparatedByCharactersInSet:]
。
NSString * yourString = @"Stack Overflow+Documentation/Objective-C";
NSArray * yourWords = [yourString componentsSeparatedByCharactersInSet:
[NSCharacterSet characterSetWithCharactersInString:@"+/"]];
// Output: @[@"Stack Overflow", @"Documentation", @"Objective-C"]`
如果需要將字串分解為單個字元,請迴圈字串的長度並將每個字元轉換為新字串。
NSMutableArray * characters = [[NSMutableArray alloc] initWithCapacity:[yourString length]];
for (int i = 0; i < [myString length]; i++) {
[characters addObject: [NSString stringWithFormat:@"%C",
[yourString characterAtIndex:i]];
}
與長度示例中一樣 ,請記住,此處的字元是 UTF-16 程式碼單元,不一定是使用者視為字元的內容。如果你將這個迴圈與 @"🇮🇹"
一起使用,你會發現它被分成了四個部分。
要獲取使用者感知字元的列表,請使用 -enumerateSubstringsInRange:options:usingBlock:
。
NSMutableArray * characters = [NSMutableArray array];
[yourString enumerateSubstringsInRange:(NSRange){0, [yourString length]}
options:NSStringEnumerationByComposedCharacterSequences
usingBlock:^(NSString * substring, NSRange r, NSRange s, BOOL * b){
[characters addObject:substring];
}];
這樣可以保留像義大利標誌這樣的字形簇作為單個子字串。