Ios 如何重新排列字符串字符?

Ios 如何重新排列字符串字符?,ios,nsstring,Ios,Nsstring,我有一根绳子 11/17/2013 12:00:00 AM 我想让它像 17/11/2013 12:00:00 AM 我想用月刷日 我试图通过子字符串来实现,但无法得到确切的想法 有一种方法可以转换为NSData并更改格式,但我更喜欢通过NSString进行转换 谢谢诸如此类的东西: NSString *date = @"11/17/2013 12:00:00 AM"; NSString *m = [date substringWithRange:NSMakeRange(0, 2)]; NS

我有一根绳子

11/17/2013 12:00:00 AM
我想让它像

17/11/2013 12:00:00 AM
我想用月刷日

我试图通过子字符串来实现,但无法得到确切的想法

有一种方法可以转换为NSData并更改格式,但我更喜欢通过NSString进行转换

谢谢诸如此类的东西:

NSString *date = @"11/17/2013 12:00:00 AM";
NSString *m = [date substringWithRange:NSMakeRange(0, 2)];
NSString *d = [date substringWithRange:NSMakeRange(3, 2)];
NSString *result = [NSString stringWithFormat:@"%@/%@/2013 12:00:00 AM",d,m];
我还没有测试它

您可以:

NSMutableArray *array = [[yourString componentsSeparatedByString:@"/"] mutableCopy];
id temp = [array objectAtIndex:1];
[array replaceObjectAtIndex:1 withObject:[array objectAtIndex:0]];
[array replaceObjectAtIndex:0 withObject:temp];

NSString * finalString = [array componentsJoinedByString:@"/"];
试试看:

NSMutableArray *dateArray = [[@"11/17/2013 12:00:00 AM" componentsSeparatedByString:@"/"] mutableCopy];
[dateArray exchangeObjectAtIndex:1 withObjectAtIndex:0];
NSString *dateString = [dateArray componentsJoinedByString:@"/"];
NSLog(@"%@", dateString);

使用
substringWithRange:
appendString:
怎么样?不幸的是,您需要阅读文档并亲自尝试。对于我刚才指出的方法,这应该是很简单的。为什么不使用DateFormatter,这样会更有效。不,你不希望通过NSString来实现,这只是另一种打击自己的方法。如果处理的是日期,那么处理的是日期,而不是字符串。您需要一个可变数组来
replaceObjectAtIndex:
@NikosM。这是编译器警告和运行时异常。@NikosM。无法对评论进行否决(这听起来好像在编辑之前它是正确的)。@nikosm不幸的是,你错了
mutableCopy
是必需的,编译器警告的出现是有原因的。也许
componentsseparatedbystring
本身返回一个可变数组,但这是一个实现细节,您不必依赖它。它被记录为返回一个不可变数组,因此您必须始终将其视为不可变数组。“它起作用了”如果被滥用作为证据,那就是一个逻辑谬误。@NikosM。我知道,而且相信没有副本也行。请阅读我(现在更详细)的评论。这只不过是因为你很幸运。