A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

//求两个字符串的公共字母,添加到第三个字符串中
int main(int argc, const char * argv[]) {
    @autoreleasepool {

        //可变字符串接收结果
        NSMutableString* result = [NSMutableString string];

        //求两个字符串的公共字母
        NSString* str1 = @"aaaabbbbccccee";
        NSString* str2 = @"aabbccddeeffgghhiijjkkaabbcc";

        //提取str2的每个字母,看str1中是否包含
        for (int i = 0 ; i<str2.length; i++) {

            //提取str2的每个字母
            NSString* test = [NSString stringWithFormat:@"%c",[str2 characterAtIndex:i]];

            //判断可变字符串中是否包含
            BOOL no = [result containsString:test];

            //如果str1中包含,并且可变字符串中不包含(防止重复)
            if ([str1 containsString:test] &&  no == NO) {

                //加入到可变字符
                [result appendString:test];
            }

        }

        NSLog(@"%@",result);

    }
    return 0;
}


8 个回复

倒序浏览
不错 学习了!
回复 使用道具 举报

回复 使用道具 举报
NSString* test = [NSString stringWithFormat:@"%c",[str2 characterAtIndex:i]];
这句中 stringWithFormat: 为什么替换为stringWithUTF8String 就不行呢 想不明白!
回复 使用道具 举报
没找到containsString的资料,用rangeOfString查找判断的
  1. NSString *str1 = @"aabbcccddeeff";
  2.         NSString *str2 = @"aacckkhgspuidpjdjhgf";
  3.         NSMutableString *result = [NSMutableString string];
  4.         for (int i=0; i<str1.length; i++) {
  5.             
  6.             NSString *str =[NSString stringWithFormat:@"%c",[str1 characterAtIndex:i]];
  7.             
  8.             if(([str2 rangeOfString:str].location!=NSNotFound)&&[result rangeOfString:str].location==NSNotFound){
  9.                 [result appendString:str];
  10.             }
  11.         }
  12.         
  13.         NSLog(@"%@",result);
复制代码
回复 使用道具 举报
NSString *a = @"abcdefgififieigj";
        NSString *b = @"aaabbbccddd";
        
        NSMutableString *c = [NSMutableString string];
        
        for (int i = 0; i<a.length; i++) {
            
//            char ch =[a characterAtIndex:i];
            for (int j = 0; j<b.length; j++) {
                if ([a characterAtIndex:i]==[b characterAtIndex:j]){
               
                    if (![c containsString:[NSString stringWithFormat:@"%c",[a characterAtIndex:i]]]) {
                        
                    
                    [c appendFormat:@"%c",[a characterAtIndex:i]];
                    }
                }
            }
        }
        
        NSLog(@"%@",c);
回复 使用道具 举报
超の 发表于 2015-10-12 15:47
NSString* test = [NSString stringWithFormat:@"%c",[str2 characterAtIndex:i]];
这句中 stringWithForma ...

stringWithFormat可以格式化类型    stringWithUTF8String返回的就是const char 格式没法赋值给NSString类
应该是这样的
回复 使用道具 举报
Abuzzworld 发表于 2015-10-12 18:20
没找到containsString的资料,用rangeOfString查找判断的

不错 学习了
回复 使用道具 举报
已读,望互相支持!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马