在iOS中反转字符串
我正在写一段代码,它应该反转一个字符串。当我运行以下代码时,它会抛出一个错误:在iOS中反转字符串,ios,Ios,我正在写一段代码,它应该反转一个字符串。当我运行以下代码时,它会抛出一个错误: - (NSString*) reversingName:(NSString *)myNameText { NSString *result; int len = [myNameText length]; NSMutableString *reverseName = [[NSMutableString alloc] initWithCapacity:len]; for(int i=len;i&g
- (NSString*) reversingName:(NSString *)myNameText
{
NSString *result;
int len = [myNameText length];
NSMutableString *reverseName = [[NSMutableString alloc] initWithCapacity:len];
for(int i=len;i>0;i--)
{
[reverseName appendFormat:[NSString stringWithFormat:@"%c",[myNameText characterAtIndex:i]]];
}
result = reverseName;
return result;
}
环线的
应如下所示:
for(int i=len-1;i>=0;i--)
所以你的方法应该是
- (NSString*) reversingName:(NSString *)myNameText
{
int len = [myNameText length];
NSMutableString *reverseName = [[NSMutableString alloc] initWithCapacity:len];
for(int i=len-1;i>=0;i--)
{
[reverseName appendString:[NSString stringWithFormat:@"%c",[myNameText characterAtIndex:i]]];
}
return [reverseName autorelease];
}
请尝试以下示例代码:
NSString *name = @"abcdefghi" ;
int len = [name length];
NSMutableString *reverseName = [[NSMutableString alloc] initWithCapacity:len];
for(int i=len-1;i>=0;i--)
{
[reverseName appendFormat:[NSString stringWithFormat:@"%c",[name characterAtIndex:i]]];
}
NSLog(@"%@",reverseName);
我想如果有人感兴趣的话,我会推出另一个版本。。就我个人而言,我喜欢使用NSMutableString的更干净的方法,但如果性能是最高优先级,则此方法会更快:
- (NSString *)reverseString:(NSString *)input {
NSUInteger len = [input length];
unichar *buffer = malloc(len * sizeof(unichar));
if (buffer == nil) return nil; // error!
[input getCharacters:buffer];
// reverse string; only need to loop through first half
for (NSUInteger stPos=0, endPos=len-1; stPos < len/2; stPos++, endPos--) {
unichar temp = buffer[stPos];
buffer[stPos] = buffer[endPos];
buffer[endPos] = temp;
}
return [[NSString alloc] initWithCharactersNoCopy:buffer length:len freeWhenDone:YES];
}
(注意:我还没有足够的声望点数来投票或评论答案,所以如果有人能为我投票,我将不胜感激。我已经阅读了很长时间,但现在想开始贡献更多!)在Swift 2.0中反转字符串:
let string = "This is a test string."
let characters = string.characters
let reversedCharacters = characters.reverse()
let reversedString = String(reversedCharacters)
String("This is a test string.".characters.reverse())
String(Array("This is a test string.").reverse())
捷径:
let string = "This is a test string."
let characters = string.characters
let reversedCharacters = characters.reverse()
let reversedString = String(reversedCharacters)
String("This is a test string.".characters.reverse())
String(Array("This is a test string.").reverse())
或
捷径:
let string = "This is a test string."
let characters = string.characters
let reversedCharacters = characters.reverse()
let reversedString = String(reversedCharacters)
String("This is a test string.".characters.reverse())
String(Array("This is a test string.").reverse())
[reverseName appendFormat:@“%c”,[name characterAtIndex:i]]
已经足够了。您甚至可以使用XOR操作来提高速度(而不是每次分配一个临时变量)