Iphone 数组objectivec中的反向字符串
可能重复:Iphone 数组objectivec中的反向字符串,iphone,objective-c,Iphone,Objective C,可能重复: 我是objectovec的新手。我有一个字符串数组。如何反转每个字符串 NSArray和NSstring的哪种方法可以帮助我 我想要数组中的反向字符串 谢谢创建一个将返回反向字符串的方法 -(NSString *)reverseString:(NSString *)string{ NSString *reverseString=[NSString new]; for (NSInteger i=string.length-1; i>-1; i--) {
我是objectovec的新手。我有一个字符串数组。如何反转每个字符串
NSArray
和NSstring
的哪种方法可以帮助我
我想要数组中的反向字符串
谢谢创建一个将返回反向字符串的方法
-(NSString *)reverseString:(NSString *)string{
NSString *reverseString=[NSString new];
for (NSInteger i=string.length-1; i>-1; i--) {
reverseString=[reverseString stringByAppendingFormat:@"%c",[string characterAtIndex:i]];
}
return reverseString;
}
在您的应用程序中,可以使用以下任一方法:
NSMutableArray *names=[NSMutableArray arrayWithObjects:@"anoop",@"johnson",@"wasim",nil];
for (NSInteger i=0; i<names.count; i++) {
names[i]=[self reverseString:names[i]];
}
NSLog(@"%@",names);
NSMutableArray*name=[NSMutableArray数组,其对象为:@“anoop”、@“johnson”、@“wasim”、nil];
对于(NSInteger i=0;i创建一个将返回反向字符串的方法
-(NSString *)reverseString:(NSString *)string{
NSString *reverseString=[NSString new];
for (NSInteger i=string.length-1; i>-1; i--) {
reverseString=[reverseString stringByAppendingFormat:@"%c",[string characterAtIndex:i]];
}
return reverseString;
}
在您的应用程序中,可以使用以下任一方法:
NSMutableArray *names=[NSMutableArray arrayWithObjects:@"anoop",@"johnson",@"wasim",nil];
for (NSInteger i=0; i<names.count; i++) {
names[i]=[self reverseString:names[i]];
}
NSLog(@"%@",names);
NSMutableArray*name=[NSMutableArray数组,其对象为:@“anoop”、@“johnson”、@“wasim”、nil];
对于(NSInteger i=0;i使用
使用
希望这有帮助
NSString *str=textEntered.text;//
NSMutableArray *temp=[[NSMutableArray alloc] init];
for(int i=0;i<[str length];i++)
{
[temp addObject:[NSString stringWithFormat:@"%c",[str characterAtIndex:i]]];
}
temp = [NSMutableArray arrayWithArray:[[temp reverseObjectEnumerator] allObjects]];
NSString *reverseString=@"";
for(int i=0;i<[temp count];i++)
{
reverseString=[NSString stringWithFormat:@"%@%@",reverseString,[temp objectAtIndex:i]];
}
NSLog(@"%@",reverseString);
NSString*str=textcentered.text//
NSMutableArray*temp=[[NSMutableArray alloc]init];
对于(inti=0;我希望这有帮助
NSString *str=textEntered.text;//
NSMutableArray *temp=[[NSMutableArray alloc] init];
for(int i=0;i<[str length];i++)
{
[temp addObject:[NSString stringWithFormat:@"%c",[str characterAtIndex:i]]];
}
temp = [NSMutableArray arrayWithArray:[[temp reverseObjectEnumerator] allObjects]];
NSString *reverseString=@"";
for(int i=0;i<[temp count];i++)
{
reverseString=[NSString stringWithFormat:@"%@%@",reverseString,[temp objectAtIndex:i]];
}
NSLog(@"%@",reverseString);
NSString*str=textcentered.text//
NSMutableArray*temp=[[NSMutableArray alloc]init];
对于(inti=0;i使用这个函数来反转字符串,然后以相同的索引存储回数组
-(NSString*)reverseString:(NSString*)string {
NSMutableString *reversedString;
int length = [string length];
reversedString = [NSMutableString stringWithCapacity:length];
while (length--) {
[reversedString appendFormat:@"%c", [string characterAtIndex:length]];
}
return reversedString;
}
但如果您有可变字符串,则可以创建一个类别
@interface NSMutableString (Reverse)
- (void)reverseString;
@end
@implementation NSMutableString (Reverse)
- (void)reverseString {
for (int i = 0; i < self.length/2; i++) {
int l = self.length - 1 - i;
NSRange iRange = NSMakeRange(i, 1);
NSRange lRange = NSMakeRange(l, 1);
NSString *iStr = [self substringWithRange:iRange];
NSString *lStr = [self substringWithRange:lRange];
[self replaceCharactersInRange:iRange withString:lStr];
[self replaceCharactersInRange:lRange withString:iStr];
}
}
@end
使用这个函数可以反转字符串,然后以相同的索引存储回数组
-(NSString*)reverseString:(NSString*)string {
NSMutableString *reversedString;
int length = [string length];
reversedString = [NSMutableString stringWithCapacity:length];
while (length--) {
[reversedString appendFormat:@"%c", [string characterAtIndex:length]];
}
return reversedString;
}
但如果您有可变字符串,则可以创建一个类别
@interface NSMutableString (Reverse)
- (void)reverseString;
@end
@implementation NSMutableString (Reverse)
- (void)reverseString {
for (int i = 0; i < self.length/2; i++) {
int l = self.length - 1 - i;
NSRange iRange = NSMakeRange(i, 1);
NSRange lRange = NSMakeRange(l, 1);
NSString *iStr = [self substringWithRange:iRange];
NSString *lStr = [self substringWithRange:lRange];
[self replaceCharactersInRange:iRange withString:lStr];
[self replaceCharactersInRange:lRange withString:iStr];
}
}
@end
嗯…闻起来像家庭作业。你应该看看这个。希望它有帮助!你想要字符串反转或数组?嗯…闻起来像家庭作业。你应该看看这个。希望它有帮助!你想要字符串反转或数组?也许字符串函数不能用四字节字符工作?也许substringWithRange:
更安全?它不会最好使用EnumerationSubstringsRange:options:usingBlock:
和NSStringEnumerationByComposedCharacterSequences
和NSStringEnumerationReverse
选项。否则,当字符串中有表情符号或某些cjk字符时,它将中断。@omz:是的,但我仍在学习blocks。并且用户想要反转数组的内容…因此我使用了另一个名为[i]的for…我可以缩短它的长度吗?顺便说一句,你的方法在内存使用方面也是非常低效的。你正在为每个字符创建一个新字符串。使用NSMutableString
代替它并附加到它上面。也许string函数不能处理四字节字符?也许substringWithRange:
更安全?使用它会更好EnumerationSubstringsRange:options:usingBlock:
与NSStringEnumerationByComposedCharacterSequences
和NSStringEnumerationReverse
选项一起使用。否则,当字符串中有表情符号或某些cjk字符时,它将中断。@omz:是的,但我仍在学习blocks。正如用户所希望的那样反转数组的内容…因此我使用了另一个名为[i]的…我可以缩短它的长度吗?顺便说一句,你的方法在内存使用方面也非常低效。你正在为每个字符创建一个新字符串。请改用NSMutableString
并附加到该字符串上。使用rangeOfString:
获取完整范围是完全不必要且低效的(该方法用于搜索字符串)。只需使用NSMakeRange(0,string.length)
。使用rangeOfString:
获取完整范围是完全不必要且低效的(该方法用于搜索字符串)。只需使用NSMakeRange(0,string.length)
。