ios substr from end

时间:2012-02-02 15:37:32

标签: ios nsstring substring

我尝试了substringFromIndex:-4,但收到了错误消息。我如何切割&只保留一个字符串的结尾?或者更确切地说,substr从最后开始?

例如

12/12/2012 -> 2012

2 个答案:

答案 0 :(得分:9)

你必须自己计算,我害怕。这将有效:

NSString *theWholeString = @"12/12/2012";
NSString *substring = [theWholeString substringFromIndex:[theWholeString length] - 4];

在上述情况下,您也可以使用拆分来执行此操作:

NSString *theWholeString = @"12/12/2012";
NSArray *components = [theWholeString componentsSeparatedByString:@"/"];
NSString *substring = [components objectAtIndex:2]; // the third item in the array

如果你想一个接一个地提取日期的每个部分,这可能会更容易。

为了完整起见,如果您要解析日期,最好的方法是使用NSDateFormatter,如下所示:

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];

//first get the date object
[formatter setDateFormat:@"dd/MM/yyyy"]; // make sure you get dd and MM the right way round if you're American
NSDate *date = [formatter dateFromString:@"12/12/2012"];

//now output the part you wanted
[formatter setDateFormat:@"yyyy"];
NSString *justTheYear = [formatter stringFromDate:date];

如果你只想要这一年,那就太过分了,但是如果你开始尝试删除更复杂的日期/时间字符串,那就更灵活了。

答案 1 :(得分:8)

尝试:

NSString *dateString = @"12/12/2012";
NSLog(@"%@", [dateString substringFromIndex:[dateString length]-4]);
相关问题