Я хочу получить символ где-то внутри NSString. Я хочу, чтобы результат был NSString.
Это код, который я использую для получения одного символа в его индексе:
[[s substringToIndex:i] substringToIndex:1]
Есть ли лучший способ сделать это?
Я хочу получить символ где-то внутри NSString. Я хочу, чтобы результат был NSString.
Это код, который я использую для получения одного символа в его индексе:
[[s substringToIndex:i] substringToIndex:1]
Есть ли лучший способ сделать это?
Это также приведет к получению символа в индексе я как NSString, и вы используете только структуру NSRange, а не дополнительную NSString.
NSString * newString = [s substringWithRange:NSMakeRange(i, 1)];
Если вы просто хотите получить один символ из NSString, вы можете попробовать это.
- (unichar)characterAtIndex:(NSUInteger)index;
Используется так:
NSString *originalString = @"hello";
int index = 2;
NSString *theCharacter = [NSString stringWithFormat:@"%c", [originalString characterAtIndex:index-1]];
//returns "e".
Ваше предложение работает только для простых символов, таких как ASCII. NSStrings хранит unicode, и если ваш персонаж длится несколько unichars, тогда вы можете обрести тарабарщину. Используйте
- (NSRange)rangeOfComposedCharacterSequenceAtIndex:(NSUInteger)index;
если вы хотите определить, сколько unichars ваш персонаж. Я использую это, чтобы выполнить мои строки, чтобы определить, где встречаются границы символов.
Быть полностью юникодом способным - это немного работать, но зависит от того, какие языки вы используете. Я вижу много азиатского текста, поэтому большинство персонажей перетекают из одного места, и поэтому он работает, что мне нужно делать.
NSMutableString *myString=[NSMutableString stringWithFormat:@"Malayalam"];
NSMutableString *[email protected]"";
for (int i=0; i<myString.length; i++) {
revString=[NSMutableString stringWithFormat:@"%c%@",[myString characterAtIndex:i],revString];
}
NSLog(@"%@",revString);