как я могу разделить строку @ "Hello" на элемент item0: 'H', item1: 'e', item2: 'l', item3: 'l', item4: 'o'. Я искал везде, но не мог найти, как..: (
oh, в Objective-C, конечно.
спасибо за вашу помощь.
как я могу разделить строку @ "Hello" на элемент item0: 'H', item1: 'e', item2: 'l', item3: 'l', item4: 'o'. Я искал везде, но не мог найти, как..: (
oh, в Objective-C, конечно.
спасибо за вашу помощь.
Если вы удовлетворены массивом C char
s, попробуйте:
const char *array = [@"Hello" UTF8String];
Если вам нужен NSArray, попробуйте:
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];
}
И array
будет содержать каждый символ в качестве его элемента.
Попробуйте следующее:
- (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);
}
Вы можете использовать - (unichar)characterAtIndex:(NSUInteger)index
для доступа к строковым символам в каждом индексе.
Итак,
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]);
Пользователь529758 упоминает, разделяет вашу строку - C-образ:
const char *array = [@"Hello" UTF8String];
Но затем зациклируйте его, используя:
for (int i = 0; i < sizeof(array); i++) {
doSomethingWithCharacter(array[i]);
}