那裏有兩個錯誤。
首先,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];
}];
什麼是您預期的輸出? @「dlrow olleH」? – kevin
這裏有幾個想法:(http://stackoverflow.com/questions/6720191/reverse-nsstring-text),但我不會因爲dup而關閉,因爲我沒有看到任何答案比@Sulthan的「Another方式「,我認爲這是最短的計算行程 – danh