我希望从NSString的某个位置获取一个字符,并且要求结果为NSString类型。
以下是我用来获取索引为it处单个字符的代码:
[[s substringToIndex:i] substringToIndex:1]
有更好的方法吗?
我希望从NSString的某个位置获取一个字符,并且要求结果为NSString类型。
以下是我用来获取索引为it处单个字符的代码:
[[s substringToIndex:i] substringToIndex:1]
有更好的方法吗?
这也将检索索引为i的字符作为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这样简单的字符。NSString存储Unicode,如果你的字符由多个unichar组成,那么最终可能会得到乱码。使用
- (NSRange)rangeOfComposedCharacterSequenceAtIndex:(NSUInteger)index;
如果您想确定字符有多少个unichars。 我使用此方法遍历我的字符串以确定字符边界的位置。
完全支持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);