我正在处理字符串,例如@"78912345"
。我想从中提取三个字符串,前四个字符为StringOne,然后第五个和第六个字符为StringTwo,第七个和第八个字符为StringThree。
请指导。感谢
答案 0 :(得分:6)
您可以使用NSMakeRange
和subStringWithRange ....
NSString *string = @"78912345";
NSString *first, *second, *third;
first=[string substringWithRange:NSMakeRange(0, 4)];
second=[string substringWithRange:NSMakeRange(first.length, 2)];
third=[string substringWithRange:NSMakeRange(first.length+second.length, 2)];
因为你的长度是固定的......
你可以这样做:
first=[string substringToIndex:4]; //will give you first four chars
second=[string substringWithRange:NSMakeRange(first.length, 2)]; //
third=[string substringFromIndex:string.length-2]; //last two
编辑: (感谢SPA注意到他想要约会)
由于您要将数字解析为年,月和日期,因此可以将其用作:
NSDate *date = [NSDate date];
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [calendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit fromDate:date];
NSInteger year = [components year]
NSInteger month = [components month]
NSInteger day = [components day]
答案 1 :(得分:2)
使用此方法提取您想要的内容:
NSString *result = [baseString substringWithRange:range];
如果你想要前四个字符,那么你的范围是:
NSMakeRange(0,4)
如果你想要最后2个字符:
NSMakeRange(6,2)
一般来说:
NSMakeRange(firstIndex,lenght)
答案 2 :(得分:2)
如果它始终是您要解析的格式为YYYYMMDD的日期,则使用NSDateFormatter集Simple date formatting question
答案 3 :(得分:1)
NSString *yearStr = [valueStr substringWithRange:NSMakeRange(0, 4)];
NSString *monthStr = [valueStr substringWithRange:NSMakeRange(4, 2)];
NSString *dayStr = [valueStr substringWithRange:NSMakeRange(6, 2)];
我希望它对你有用。试试这个...