Как получить один символ NSString из NSString



Я хочу получить символ откуда-то внутри NSString. Я хочу, чтобы результат был NSString.



Это код, который я использую, чтобы получить один символ в index it:



[[s substringToIndex:i] substringToIndex:1]


есть ли лучший способ сделать это?

764   4  

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

    Ничего не найдено.