4 ответов:
Это также будет извлекать символ в индексе i как NSString, и вы используете только структуру NSRange, а не дополнительную NSString.
NSString * newString = [s substringWithRange:NSMakeRange(i, 1)];
Если вы просто хотите получить один символ из строки A 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 *revString=@""; for (int i=0; i<myString.length; i++) { revString=[NSMutableString stringWithFormat:@"%c%@",[myString characterAtIndex:i],revString]; } NSLog(@"%@",revString);
Comments