NSString字符串与数组

1.创建一个普通字符串

NSString *str=@"abc"不可变字符串;NSMtablestring *str1=[NSMtablestring string]可变字符串

不可变字符串:生成的对象都是不可变的字符串对象。比如string=@“iphone”,如果想获得“ip”只能生成新的字符串“ip”,NSMutable是可变字符串类型,生成的对象是可变字符串类型,对可变字符串进行操作可以直接改变自身

2.获得字符串的一些方法

     (1)NSString *phone=[string substringFromIndex:1];从字符串中第一个元素开始一直截取到最后,获得的结果是:“hone”;

     (2)NSString *ipStr=[string substringToIndex:2];从字符串第0个元素开始,截取两个字符,结果是:“ip”;

     (3)NSRange range=NSMakeRange(3,2);

     NSString *onStr=[string substringWithRange:range];从第三个元素开始截取两个字符

    字符串拼接

     NSString *sixstr=@"6";

     NSString *iphone6=[string stringByAppendingString:sixstr];打印结果就是“iPhone6”;

     字符串替换

     NSString *sevenstr=@"7";

     NSString *iphone7=[iphone6 stringByReplacingOccurrencesOfString:@"6" withString:@"7"];

    字符串比较

   NSComparisonResult h=[a caseInsensitiveCompare:b];

3.数组是存储在ui中可显示内容的集合

    NSArray *array=[NSArray arrayWithObjects:@"a",@"b",@"c",@"[:hello]", nil];

    NSString *str1=[array objectAtIndex:1];

    [array firstObject];

    [array lastObject];

4.把数组中的东西一个一个的弄到end

    NSArray *end=[NSArray arrayWithArray:array];

    NSLog(@"%@",end);

5.可变数组,必须初始化才能使用

    NSMutableArray *array1=[NSMutableArray arrayWithObjects:@"1",@"2",@"3", nil];

    [array1 addObject:@"7" ];//往数组里添加一个元素

    NSLog(@"%@",array1);


    NSMutableArray *array2=[NSMutableArray arrayWithObjects:@"4",@"5",@"6", nil];

    [array2 addObjectsFromArray:array1];//把一个数组中的东西拷贝到另一个数组中

    NSLog(@"%@",array2);


    NSMutableArray *array7=[NSMutableArray arrayWithObjects: nil];

    NSMutableArray *array8=[NSMutableArray arrayWithObjects:@"你好",@"uu",@"吃饭", nil];

    [array7 addObject:array8];//大数组里面包含小数组就相当于里面小数组是个元素

     NSLog(@"%@",array7);

6.字符串获取方法与数组结合

   NSString *str = @"abc[:hello]ok[:cool]bye[:bye]";

    NSMutableString *str1 = [NSMutableString string];

    NSMutableString *str2 = [NSMutableString string];

   BOOL mid = NO;  //判断是否有中括号

    BOOL judge = NO; //判断是否包括“[:”

   for (int i = 0; i < str.length ; i++) {

        //遍历输出所有字符

        NSString *current = [str substringWithRange:NSMakeRange(i, 1)];

        //判断字符是否与“[”相等

        if ([current isEqualToString:@"["]) {

            //有中括号,继续;

            mid = YES;

            //“[”装入目标字符串中

            [str2 appendString:current];

            //如果字符串与相等

        } else if ([current isEqualToString:@":"]) {

            //判断前一个是否是中括号

            if (mid) {

                //判断是否包含“[:”

                judge = YES;

                //判断后面一个字符串是否是中括号

                mid = NO;

                //装入目标字符串中

                [str2 appendString:current];

            }

            //判断是否包含右中括号

       } else if ([current isEqualToString:@"]"]) {

            //判断前一个是否包含“[:”

            if (judge) {

                //没有包含"[:"

                judge = NO;

                //放入目标字符串中

               [str2 appendString:current];

            }

        } else {

            //判断表情字符

            if (judge) {

                [str2 appendString:current];

                continue;

            }

            mid = NO;

            [str1 appendString:current];

        }

   }

    NSLog(@"非标签字符str1 = %@", str1);

    NSLog(@"标签字符str2 = %@", str2);

获取的结果的是:str1=abcokbye;str2=[:hello][:cool][:bye];




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、根据以下要求,比较两个字符串的大小,并返回比较结果: 1、比较两字符串的大小。 2、忽视大小写 3、 按字典序 如果第一个字符串大于第二个字符串 返回大于0,如果第一个字符串等于第二个字符串 返回等于0 ,如果第一个字符串小于第二个字符串返回小于0。 4、例子 compareToIgnoreCase("HARD","hark")的比较结果返回小于0 。 二、给一个二维数组inArr[ ][ ],写一个方法获取每一列的最小值,输出到一个一维数组outArr[ ]中。 如:inArr[ ][ ]={{1,8,3},{6,5}},则输出outArr[ ] = {1,5,3} 三、判断一个字符串是否是首字母大写,其余字母都是小写。 例如 输入:True 输出: true 四、输入一个字符串字符串是字母和数字的组合,编程实现输出一个新的字符串,要求字母在前面,数字在后面,顺序不变,例如:2s7ess83a 变成sessa2783 五、一个字符串,获取最长的一个单词,如有多个相同长度的单词返回第一个单词。入输入:"hello china"则返回 hello 六、将一个字符里出现最多的字母截取,如,addcbbs变为acs。 七、输入一个整型数组,arr=(1,2,5) 输出数组中数字对应英文字母表中对应的字母,如果不在字母表中用"?"表示 例如,输入arr=(1,2,30,3),输出:a b ? c 八、输入一数组,按照英文26个字母顺序,输出每个数字对应的字母,如果查不到,则输出?。如[1,3,30],输出ac?。 九、把数组中的1-26的数字映射成a-z的小写字母 如果输入其他数字,则在页面上打印"?" 如:int [] arr={1,2,3,4,30} 输出:a,b,c,d,? 十、输入A-Z26个字母,输入一个大写字母后,输出该字母之后第5个字母的小写。 如输入A,输出f,输入Z,则输出e,超出Z是,超过1个,则返回a,超过两个,则返回b,以此类推。 十一、一个维数组,求大于等于数组内的所有值的平均值的个数 例,{1、2、3、4、5、6、7、8、9、10} 输出 5 十二、给一个二维数组inArr[ ][ ],写一个方法获取每一列的最大值,输出到一个一维数组outArr[ ]中。 如:inArr[ ][ ]={{1,8,3},{6,5}},则输出outArr[ ] = {8,6} 选取一组一维数组,求出它的最大值和次大值,放入另一个一维数组中并返回。 十三、求两个数的最大公约数 =========================================== =========================================== 输出: Test1:比较两个字符串的大小,如: < 0 Test2:二维数组获取每一列的最小值,如: {1,5,3} Test3:判断 首字母大写,其余字母都是小写,如:false Test4:输出要求字母在前面,数字在后面,如:sessa2783 Test5:获取最长的一个单词,如有多个相同长度的单词返回第一个单词,如:hello Test6:字母截取,如:acs Test7:输入一个整型数组,输出对应的字母,如:ab?c Test8:输入一数组,按照英文26个字母顺序,输出每个数字对应的字母,如果查不到,则输出?,如: ac? Test9:把数组中的1-26的数字映射成a-z的小写字母,如: a,b,c,d,? Test10:输入一个大写字母后,输出该字母之后第5个字母的小写,如:f Test11:求大于等于数组内的所有值的平均值的个数,如: 5 Test12:二维数组获取每一列的最大值,如: {8,6} Test13:求两个数的最大公约数,如:12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值