このような文字列のセットがあります。
1 Wednesday, 3 Monday, 1 2 Tuesday
今、文字だけを考慮してこれらをソートする必要があります。結果は
3 Monday, 1 2 Tuesday, 1 Wednesday
文字列は部分文字列 (水曜日、月曜日、火曜日) を考慮して並べ替えられているため、結果が得られました。どうすればそれができますか?
このような文字列のセットがあります。
1 Wednesday, 3 Monday, 1 2 Tuesday
今、文字だけを考慮してこれらをソートする必要があります。結果は
3 Monday, 1 2 Tuesday, 1 Wednesday
文字列は部分文字列 (水曜日、月曜日、火曜日) を考慮して並べ替えられているため、結果が得られました。どうすればそれができますか?
試す
NSArray *array = @[@"1 Wednesday",@"3 Monday",@"1 2 Tuesday"];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"EEEEE"];
NSArray *sortedArray = [array sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
NSCharacterSet *validCharacterSet = [NSCharacterSet letterCharacterSet];
NSCharacterSet *unwantedCharecterSet = [validCharacterSet invertedSet];
NSString *string1 = [(NSString *)obj1 stringByTrimmingCharactersInSet:unwantedCharecterSet];
NSString *string2 = [(NSString *)obj2 stringByTrimmingCharactersInSet:unwantedCharecterSet];
NSDate *date1 = [dateFormatter dateFromString:string1];
NSDate *date2 = [dateFormatter dateFromString:string2];
return [date1 compare:date2];
}];
( "3 月曜日", "1 2 火曜日", "1 水曜日" )