码迷,mamicode.com
首页 > 其他好文 > 详细

如何调戏NSString

时间:2015-07-23 06:54:52      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:

  给出一个字符串@"I am a boy,I like playing computer games",然后我们尽我们所能的调戏它.    

     NSString *string=@"I am a boy,I like playing computer games";

    NSMutableString*mStr=[[NSMutableString alloc]initWithString:string];

     首先,我们要了解一下这个字符串到底有多少个单词.                    

    NSCharacterSet *characterSet1 = [NSCharacterSet characterSetWithCharactersInString:@", "];  // 将判断符"空格"和"逗号"存在NScharacSet中, 它会将我们在后面的字符串中的所有字符作为分隔符包括空格逗号等等..

    NSArray *arr=[mStr componentsSeparatedByCharactersInSet:characterSet1]; //我们将这个字符串进行分割.

    NSLog(@"%lu",(unsigned long)arr.count); 

     我们得到了 我们第一个需要的信息,这个字符串一个有9个英文单词. 在上面这个方法中,如果我们的分割符号只有一个"空格"的话, 那我们就不需要使用NSCharacterSet中的方法. 我们可以直接使用[mStr componentsSeparatedByString:(@" ")];也是可以达到我们分割的目的.

      恩,是时候对这个逗号,做点什么了,总觉着它很碍事,因为他得出现,不利于我们的游戏,现在我们要找到它,然后用空格来代替逗号的位置.      

NSLog(@"%lu",    (unsigned long)[mStr rangeOfString:@","].location); 

     我们通过调用方法,找到这个逗号在这个字符串的位置是10,我们任性的先给它删掉.

 

    [mStr deleteCharactersInRange:NSMakeRange(10, 1)];

 

  然后,我们在给它加上

     [mStr insertString:@"," atIndex:10];

     我们在给它换成空格    

    [mStr replaceCharactersInRange:NSMakeRange(10, 1) withString:@" "];

   ok,我们调戏逗号的过程其实就是对这个NSString做了一个简单地"增,删,改,查".

    那么现在我们要将 我们改过的这个字符串里面的单词进行逆序输出了,在上面的代码中,我们已经把里面的每一个单词都取了出来放入了一个数组arr中,在接下来我们要在新初始化另一个可变数组arr1,我们要将arr这个数组做一个逆序遍历,然后将arr中的每一个元素都逆序的存入arr1中,这样操作之后,我们就已经完成了这个数组的逆序排列. 然后我们重新将这个数组通过调用 componentsJoinedBySring这个方法重新组成一个新的字符串,用"-"来分割没一个单词.

    NSMutableArray * arr1=[[NSMutableArray alloc]init];

    NSEnumerator *enume=[arr reverseObjectEnumerator];

    NSString*obj;

    while (obj=[enume nextObject]) {

        [arr1 addObject:obj];

    }

    NSString*str1=[arr1 componentsJoinedByString:@"-"];

   

     现在的这句话已经变成了: games-computer-playing-like-I-boy-a-am-I

    这样可以了么?不不不,还不够彻底

   我要将它的每个字符都打印出来,然后用空格作为间隔符号在重新组成一个字符串.

  

    NSMutableArray*arr2=[[NSMutableArray alloc]init];

    NSUInteger len = [str1 length];

 

    for(NSUInteger i=0; i<len; i++)

    {

        [arr2 addObject:[NSNumber numberWithChar:[str1 characterAtIndex:i]]];

    }

  arr2中就是我们所有的每个字符,但是arr2保存的是我们的ASC码形式的字符串,我们还要将他们转换成我们的字母

      

    NSMutableArray*arr3=[[NSMutableArray alloc]init];

    for (int i = 0;  i < arr2.count; i++) {

        int intSting=[[arr2 objectAtIndex:i] intValue];

        NSString *stringInt = [NSString stringWithFormat:@"%c",intSting];

        [arr3 addObject:stringInt];

  现在这个arr3中存得就是这个字符串中的每一个字符了,然后我们将他们组合起来

    NSString*str3=[arr3 componentsJoinedByString:@""];

   

      games-computer-playing-like-I-boy-a-am-I

 

      NSlog("Are you ok,my string?");

      调戏完毕!

 

  

 

 

 

   

    

 

   

 

       

 

   

 

 

  

如何调戏NSString

标签:

原文地址:http://www.cnblogs.com/FlyZebra110/p/4669155.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!