Split an NSString into an array in Objective-C

前端 未结 4 616
傲寒
傲寒 2021-02-05 14:23

How can I split the string @\"Hello\" to either:

  • a C array of \'H\', \'e\', \'l\', \'l\', \'
相关标签:
4条回答
  • 2021-02-05 14:25

    Try this :

    - (void) testCode
    {
        NSString *tempDigit = @"12345abcd" ;
        NSMutableArray *tempArray = [NSMutableArray array];
        [tempDigit enumerateSubstringsInRange:[tempDigit rangeOfString:tempDigit]
                                      options:NSStringEnumerationByComposedCharacterSequences
                                   usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) {
                [tempArray addObject:substring] ;
            }] ;
    
        NSLog(@"tempArray = %@" , tempArray);
    }
    
    0 讨论(0)
  • 2021-02-05 14:26

    A user529758 mentions, split your string - the C way - like:

    const char *array = [@"Hello" UTF8String];
    

    But then loop it using:

    for (int i = 0; i < sizeof(array); i++) {
      doSomethingWithCharacter(array[i]);
    }
    
    0 讨论(0)
  • 2021-02-05 14:33

    You can use - (unichar)characterAtIndex:(NSUInteger)index to access the string characters at each index.

    So,

    NSString* stringie = @"astring";
    NSUInteger length = [stringie length];
    unichar stringieChars[length];
    for( unsigned int pos = 0 ; pos < length ; ++pos )
    {
        stringieChars[pos] = [stringie characterAtIndex:pos];
    }
    // replace the 4th element of stringieChars with an 'a' character
    stringieChars[3] = 'a';
    // print the modified array you produced from the NSString*
    NSLog(@"%@",[NSString stringWithCharacters:stringieChars length:length]);
    
    0 讨论(0)
  • If you're satisfied with a C array of chars, try:

    const char *array = [@"Hello" UTF8String];
    

    If you need an NSArray, try:

    NSMutableArray *array = [NSMutableArray array];
    NSString *str = @"Hello";
    for (int i = 0; i < [str length]; i++) {
        NSString *ch = [str substringWithRange:NSMakeRange(i, 1)];
        [array addObject:ch];
    }
    

    And array will contain each character as an element of it.

    0 讨论(0)
提交回复
热议问题