NSString to NSArray

前端 未结 7 1083
天命终不由人
天命终不由人 2020-11-30 13:43

I want to split an NSString into an NSArray. For example, given:

NSString *myString=@\"ABCDEF\";

I want an

相关标签:
7条回答
  • 2020-11-30 14:19
    NSMutableArray *chars = [[NSMutableArray alloc] initWithCapacity:[theString length]];
    for (int i=0; i < [theString length]; i++) {
        NSString *ichar  = [NSString stringWithFormat:@"%C", [theString characterAtIndex:i]];
        [chars addObject:ichar];
    }
    
    0 讨论(0)
  • 2020-11-30 14:21

    Without loop you can use this:

    NSString *myString = @"ABCDEF";
    NSMutableString *tempStr =[[NSMutableString alloc] initWithString:myString];
    
    if([myString length] != 0)
    {
        NSError  *error  = NULL;
    
        // declare regular expression object
        NSRegularExpression *regex =[NSRegularExpression regularExpressionWithPattern:@"(.)" options:NSMatchingReportCompletion error:&error];
    
        // replace each match with matches character + <space> e.g. 'A' with 'A '
        [regex replaceMatchesInString:tempStr options:NSMatchingReportCompletion range:NSMakeRange(0,[myString length]) withTemplate:@"$0 "];
    
        // trim last <space> character
        [tempStr replaceCharactersInRange:NSMakeRange([tempStr length] - 1, 1) withString:@""];
    
        // split into array
        NSArray * arr = [tempStr componentsSeparatedByString:@" "];
    
        // print
        NSLog(@"%@",arr);
    }
    

    This solution append space in front of each character with the help of regular expression and uses componentsSeparatedByString with <space> to return an array

    0 讨论(0)
  • 2020-11-30 14:27
    NSMutableArray *letterArray = [NSMutableArray array];
    NSString *letters = @"ABCDEF                                                                    
    0 讨论(0)
  • 2020-11-30 14:31

    Swift 4.2:

    String to Array

    let list = "Karin, Carrie, David"
    
    let listItems = list.components(separatedBy: ", ")
    

    Output : ["Karin", "Carrie", "David"]

    Array to String

    let list = ["Karin", "Carrie", "David"]
    
    let listStr = list.joined(separator: ", ")
    

    Output : "Karin, Carrie, David"

    0 讨论(0)
  • 2020-11-30 14:36

    This link contains examples to split a string into a array based on sub strings and also based on strings in a character set. I hope that post may help you.

    here is the code snip

    NSMutableArray *characters = [[NSMutableArray alloc] initWithCapacity:[myString length]];
    for (int i=0; i < [myString length]; i++) {
        NSString *ichar  = [NSString stringWithFormat:@"%c", [myString characterAtIndex:i]];
        [characters addObject:ichar];
    }
    
    0 讨论(0)
  • 2020-11-30 14:37

    In Swift, this becomes very simple.

    Swift 3:

    myString.characters.map { String($0) }
    

    Swift 4:

    myString.map { String($0) }
    
    0 讨论(0)
提交回复
热议问题