刚刚学习objective-c,我试图使用一个简单的for循环来反转一个字符串。我不确定我在这里缺少什么部分。任何帮助将不胜感激。
NSString *input = @"Hello world";
NSMutableString *reversedString = [NSMutableString string];
for(int i =0; i<input.length;i--){
[reversedString appendString:input];
}
答案 0 :(得分:0)
那里有两个错误。
首先,for
循环。您必须从最后一个索引开始并以零结束:
for (NSInteger i = input.length - 1; i >= 0; i--) {
其次,你总是附加整个字符串,而不是字符。
NSString *character = [input substringWithRange:NSMakeRange(i, 1)];
[reversedString appendString:character];
(我正在从索引i
开始一个长度为1
的子字符串。)
另一种方式是:
unichar character = [input characterAtIndex:i];
[reversedString appendFormat:@"%C", character];
更高级的选项是:
[input enumerateSubstringsInRange:NSMakeRange(0, input.length)
options:(NSStringEnumerationByComposedCharacterSequences | NSStringEnumerationReverse)
usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) {
[reversedString appendString:substring];
}];