符串切割成数组等面试出现的笔试题

本文介绍了如何使用Objective-C进行字符串切割转换为数组的操作,并演示了如何通过集合操作实现数组的比较,包括查找两个数组中的相同元素和不同元素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

符串切割成数组

- (void)viewDidLoad
{
    NSString *a = [[NSString alloc] initWithString : @"冬瓜,西瓜,火龙果,大头,小狗" ];
    NSArray *b = [a componentsSeparatedByString:@","];
    NSString *a3 = [b objectAtIndex:2];
    NSLog(@"\n  b的第三个东东是: %@", a3);
    [a release];
}

冒泡排序

def bubble_sort(lists):
    # 冒泡排序
    count = len(lists)
    for i in range(0, count):
        for j in range(i + 1, count):
            if lists[i] > lists[j]:
                lists[i], lists[j] = lists[j], lists[i]
    return lists

NSString中字符的位置

NSString *str = @"12345ba";  
NSRange range = [str rangeOfString:@"a"];  
NSLog(@"所查的字符坐标为:%ld",range.location);  

数组比较

查找相同的数据
一、
NSArray *arr2 = @[@4,@3,@2,@1];
NSArray *arr1 = @[@2,@3,@4,@5];
NSMutableSet *set1 = [NSMutableSet setWithArray:arr1];
NSMutableSet *set2 = [NSMutableSet setWithArray:arr2];
[set1 intersectSet:set2];
NSLog(@"%@",set1);
二、
NSArray * arr2 = @[@4,@3,@2,@1];
NSArray * arr1 = @[@2,@3,@4,@5];
NSPredicate * filterPredicate_same = [NSPredicate predicateWithFormat:@"SELF IN %@",arr1];
NSArray * filter_no = [arr2 filteredArrayUsingPredicate:filterPredicate_same];
NSLog(@"%@",filterPredicate_same);

打印信息:(4,3,2)
注:由观察可以看出打印顺序是按照arr2的顺序打印的,解读代码之后可以
很容易得到结论:打印顺序是由外层循环的数组决定的;

查找不同的数据
一、
NSMutableSet *set1 = [NSMutableSet setWithArray:arr1];
NSMutableSet *set2 = [NSMutableSet setWithArray:arr2];
[set2 minusSet:set1];
NSMutableSet *set3 = [NSMutableSet setWithArray:arr2];
[set1 minusSet:set3];
[set2 unionSet:set1];
NSLog(@"%@",set2);

二、
NSArray * arr2 = @[@4,@3,@2,@1];
NSArray * arr1 = @[@2,@3,@4,@5];
//找到在arr2中不在数组arr1中的数据
NSPredicate * filterPredicate1 = [NSPredicate predicateWithFormat:@"NOT (SELF IN %@)",arr1];
NSArray * filter1 = [arr2 filteredArrayUsingPredicate:filterPredicate1];
//找到在arr1中不在数组arr2中的数据
NSPredicate * filterPredicate2 = [NSPredicate predicateWithFormat:@"NOT (SELF IN %@)",arr2];
NSArray * filter2 = [arr1 filteredArrayUsingPredicate:filterPredicate2];
//拼接数组
NSMutableArray *array = [NSMutableArray arrayWithArray:filter1];
[array addObjectsFromArray:filter2];
NSLog(@"%@",array);

打印信息:(1,5)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值