黑马程序员技术交流社区

标题: 求两个字符串的公共字母,添加到第三个字符串中 [打印本页]

作者: tz19900926    时间: 2015-10-10 17:09
标题: 求两个字符串的公共字母,添加到第三个字符串中
//求两个字符串的公共字母,添加到第三个字符串中
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;
}



作者: 超の    时间: 2015-10-10 17:28
不错 学习了!
作者: tz19900926    时间: 2015-10-11 10:31
超の 发表于 2015-10-10 17:28
不错 学习了!


作者: 超の    时间: 2015-10-12 15:47
NSString* test = [NSString stringWithFormat:@"%c",[str2 characterAtIndex:i]];
这句中 stringWithFormat: 为什么替换为stringWithUTF8String 就不行呢 想不明白!
作者: Abuzzworld    时间: 2015-10-12 18:20
没找到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);
复制代码

作者: 18503582292    时间: 2015-10-13 14:36
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);
作者: tz19900926    时间: 2015-10-13 17:05
超の 发表于 2015-10-12 15:47
NSString* test = [NSString stringWithFormat:@"%c",[str2 characterAtIndex:i]];
这句中 stringWithForma ...

stringWithFormat可以格式化类型    stringWithUTF8String返回的就是const char 格式没法赋值给NSString类
应该是这样的
作者: tz19900926    时间: 2015-10-13 17:10
Abuzzworld 发表于 2015-10-12 18:20
没找到containsString的资料,用rangeOfString查找判断的

不错 学习了
作者: 黑马公公007    时间: 2015-10-15 11:15
已读,望互相支持!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2