如何从NSString获取单个NSString字符

我想从NSString的某个地方得到一个angular色。 我想要的结果是一个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". 

您的build议只适用于简单的字符,如ASCII。 NSStrings存储unicode,如果你的angular色是几个unichars很长,那么你可以结束了胡言乱语。 使用

 - (NSRange)rangeOfComposedCharacterSequenceAtIndex:(NSUInteger)index; 

如果你想确定你的angular色有多less个单身汉。 我使用这个来逐句通过我的string来确定字符边界的出现位置。

完全unicode能够是一点工作,但取决于你使用的是什么语言。 我看到很多亚洲文字,所以大多数人物从一个空间溢出,所以这是我需要做的工作。

 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);