NSString 字符串处理集锦

 NSString* str1=[[NSStringalloc]initWithString:@"dfg"];

   NSLog(@"%@",str1);

    

   int i=9;

   NSString* str2=[[NSStringalloc]initWithFormat:@"%i",i];

   NSLog(@"str2=%@ %i",str2,[str2retainCount]);//计数器

    

   NSString* str3=[NSStringstringWithFormat:@"%d",i];

   NSLog(@"str3=%@ %i",str3,str3.length);

    

   NSString* str4=[NSStringstringWithFormat:@"%@",@"hs"];

    NSString* str5=[str4stringByAppendingString:@"sjd"];

   NSLog(@"str5=%@",str5);

    

   NSString* str6=[NSStringstringWithFormat:@"abcdefgh"]; 

    NSString* str7=[[NSStringstringWithFormat:@"abc"]substringFromIndex:1];//查找字符串从第一个开始

   NSLog(@"%@",str7);

 

   NSRange r={2,3};

   NSString* str8=[str6substringWithRange:r];

   NSLog(@"str8=%@",str8);

 

    [str6 flarbulateWithRange:NSMakeRange(3,4)];

   NSRange r1=[str6rangeOfString:@"cde"];//查找定位

   NSLog(@"%d",r1.location);

    

    

    NSString* httpStr=[[NSStringalloc]initWithContentsOfURL:[NSURLURLWithString:@"http://www.pin5i.com/showtopic-computer-systems-programmers-perspective-2nd-edition.html"]encoding:NSUTF8StringEncodingerror:nil ];

   NSLog(@"http=%@",httpStr);

    

    

//1.现有如下定义的字符串: NSMutableString * str=@“iphoneAndroid”,能不能对该字符串进行修改,如果能,请输出删除Android后的新字符串。    

    NSMutableString *mutablestr=[[NSMutableStringalloc]initWithCapacity:0];//可变字符串

    [mutablestrappendString:@"iphoneAndroid"];//附初值

    [mutablestr deleteCharactersInRange:NSMakeRange(6,7)];//从下标第6个开始取到第13各元素为止NsRange r1= [mutablestr rangOfString:@"Android"];

   NSLog(@"%@",mutablestr);

    

//2求字符串“158”和“39”按十进制数值做差后的结果以字符串形式输出  

   NSString* str3=[NSString stringWithFormat:@"%d",[@"158" intValue]-[@"39" intValue]];//allocinit并行使用,相当于new

   NSLog(@"str3=%@",str3);

 

//3取出符串“123-456-789-000”中的数字部分,组成一个新的字符串输出,(提示:可变字符串;返回数组)

    

    NSString* str5=@"123-456-789-000";

    NSArray* newArray=[str5componentsSeparatedByString:@"-"];

   NSLog(@"str5=%@",newArray);

    //创建可变字符串

    NSMutableString* newStr=[NSMutableStringstringWithCapacity:0];

   for (NSString* sin newArray) {

        [newStrappendString:s];

    }

    

   NSLog(@"newArray=%@",newArray);

    

    //3(2)字符串替换无重载

    NSString* astr5=@"123-456-789-000";

    //替换并以此输出

    NSString *newastr5=[astr5stringByReplacingOccurrencesOfString:@"-"withString:@""];

   NSLog(@"newArray=%@",newastr5);

//4放四个十进制三位数到一个数组中,然后按从小到大排序后组成一个新的数组

    

   // 将字符串切割成数组 componentsSeparatedByString

 

    NSString* string = @"字符6.78 呼6.90 卡号8.89";

    NSArray *array = [string componentsSeparatedByString:@" "];

    

    NSString *string2 = [[array objectAtIndex:0substringWithRange:NSMakeRange(2, 4)];

    NSString *string3 = [[array objectAtIndex:1substringWithRange:NSMakeRange(1, 4)];

    NSString *string4 = [[array objectAtIndex:2substringWithRange:NSMakeRange(2, 4)];

 

 

 

    

    NSMutableArray* numArray=[[NSMutableArrayalloc]initWithObjects:@"911",@"56",@"458",@"489",nil];

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

    {

       for (int j=(i+1); j<4; j++) {

           int a=[[numArrayobjectAtIndex:i]initValue];

           int b=[[numArrayobjectAtIndex:j]initValue];

           if(a>b)

            {

                [numArray exchangeObjectAtIndex:iwithObjectAtIndex:j];

            }

        }

    }

    

   NSLog(@"numArray=%@",numArray);

 

 

 

 

(1) 通过查找的方式来(这方式适合所有格式的子符串,推荐使用)

   NSString *newStr =@"absdfdddcc卡速度额";

   NSString *temp = nil;

   for(int i =0; i < [newStr length]; i++)  

   {   

       temp = [newStr substringWithRange:NSMakeRange(i, 1)];

       NSLog(@"%d个字是:%@",i,temp);

   }  

   

(2) 通过遍历字符的方式遍历字符串(只适合不包含中文的字符串)

        

   NSString *newStr = @"oiuyhbnccdd00";


   for(int i =0; i < [newStr length]; i++)  

 

   {   

 

 

      NSLog(@"%d个字符是:%@",i, [newStr characterAtIndex:i]);

   }  

 

 

//简转繁体

 

//SIMPLE简体  //TRADITION繁体

-(NSString*)toTraditionString:(NSString*)str

{

   NSString *outputStirng =@"";

   for (int i =0; i < [strlength]; i++)

    {

       unichar c = [strcharacterAtIndex:i];

       NSString * curStr =[NSStringalloc]initWithFormat:@"%C", c];

       NSRange r = [SIMPLE rangeOfString: curStr ];

       if(0 <= r.location && r.location < [SIMPLE length] )

        {

            unichar tc = [TRADITION characterAtIndex:r.location];

            outputStirng = [outputStirng stringByAppendingFormat:@"%C", tc];

        }

       else

        {

            outputStirng = [outputStirng stringByAppendingString:curStr];

        }

        

    }

   return outputStirng;

}

 

 

//繁体转简

-(NSString*)toSimpleString:(NSString*)str

{

   NSString *outputStirng =@"";

   for (int i =0; i < [strlength]; i++)

    {

       unichar c = [strcharacterAtIndex:i];

       NSString * curStr =[NSStringalloc]initWithFormat:@"%C", c];

       NSRange r = [TRADITION rangeOfString: curStr ];

       if(2147483647 != r.location )

        {

           unichar tc = [SIMPLE characterAtIndex:r.location];

            outputStirng = [outputStirngstringByAppendingFormat:@"%C", tc];

        }

       else

        {

            outputStirng = [outputStirngstringByAppendingString:curStr];

        }

        

    }

   return outputStirng;

}

 

@end

 

 

 

//备注:转载http://blog.sina.com.cn/s/blog_801997310101gipe.html

1.把字符串写入到制定文件夹中

 NSString *myString = @"rongtianText –Intexnet";

    NSError *error;

    NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"tmp/rongtian.txt"];

    if (![myString writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:&error]) {

        NSLog(@"写入文件错误 %@",error);

        return;

    }

 

2.NSString范围

 NSRange r;

    r.location = 4;

    r.length = 5;

    NSString *strSub = [str substringWithRange:r];

    NSLog(@"范围  %@",strSub);

3.搜索

    NSRange searchRange = [str rangeOfString:@"five"];

    if (searchRange.location != NSNotFound) {

        NSLog(@"搜索 location  %d   %d",searchRange.location,searchRange.length);

    }

4.替换

 NSString *replaced = [str stringByReplacingOccurrencesOfString:@" " withString:@"+"];

    NSLog(@"替换的文件  %@",replaced);

 

#pragma mark -字符串的比较

void text() {

    NSString * str = @"RongTian";

    // 转成大写

    [str uppercaseString];

    // 转成小写

    [str lowercaseString];

    // 首字母大写,其余小写

    [@"ffEW" capitalizedString];

    

}

 

#pragma mark 比较2个字符串的大小

void compareString() {

    

    // NSOrderedAscending    -1

    // NSOrderedSame

    // NSOrderedDescending

    

   

  NSComparisonResult result = [@"bmn" compare:@"azz"];

    if (result == NSOrderedSame) {

        NSLog(@"左 == 右");

    }else if (result == NSOrderedDescending) {

        NSLog(@"左 > 右");

    }else if (result == NSOrderedAscending)

    {

        NSLog(@"左 < 右");

    }

    

   

    NSComparisonResult caseInsenresult = [@"dffA" caseInsensitiveCompare:@"dffa"];

    if (caseInsenresult == NSOrderedSame) {

        NSLog(@"左 == 右");

    }else if (caseInsenresult == NSOrderedDescending) {

        NSLog(@"左 > 右");

    }else if (caseInsenresult == NSOrderedAscending)

    {

        NSLog(@"左 < 右");

    }

}

 

#pragma mark 字符串的搜索

void searchString() {

       NSString *str = @"456789456";

    NSLog(@"是否456开头 %i", [str hasPrefix:@"456"]);

    NSLog(@"是否789结尾 %i",[str hasSuffix:@"789"]);

    

    NSRange range = [str rangeOfString:@"567"];

    if (range.location == NSNotFound) {

        NSLog(@"str中没有找到 567");

    }else {

        NSLog(@"搜索范围 %@",NSStringFromRange(range));

    }

    // 或者

//    if (range.length == 0 ) {

//        NSLog(@"str中没有找到 567");

//    }

   

    // 从尾开始搜索

    range = [str rangeOfString:@"456" options:NSBackwardsSearch] ;

    NSLog(@"从尾搜索的范围 %@",NSStringFromRange(range));

       

//    [str rangeOfString:<#(NSString *)#> options:<#(NSStringCompareOptions)#> range:<#(NSRange)#>]

}

#pragma mark 截取字符串

void subString() {

    NSString *str = @"0987654321";

    NSLog(@"从索引indext=3开始到尾截取(包括3) %@",[str substringFromIndex:2]);

    NSLog(@"从头开始截取到索引3(不包括3)%@",[str substringToIndex:3]);

   

    NSRange range = NSMakeRange(2, 3);

    [str substringWithRange:range];

    

   

    NSString *str2 = @"a-b-c-d-e";

    NSArray *array = [str2 componentsSeparatedByString:@"-"];

    NSLog(@"通过 - 分割后的数组:%@",array);

    

}

#pragma mark 字符串与路径

void pathString() {

    NSMutableArray *comArrat = [NSMutableArray arrayWithObjects:@"User",@"Rongtian",@"Desktop" ,nil];

   

    NSString *path = [NSString pathWithComponents:comArrat];

    NSLog(@"path  %@",path);

    

   

    NSArray *arra = [path pathComponents];

}

 

1.拼接数组

NSMutableArray *arr = [NSMutableArray arrayWithObjects:@"aa",@"bb",@"cc",@"dd",@"ee", nil];

    

    NSArray *muArray = [NSArray arrayWithObjects:@"11",@"22",@"33",@"44",@"55", nil];

    NSLog(@"合并的数组是   %@",[arr arrayByAddingObjectsFromArray:muArray]);

2.把数组转成字符串

    NSArray *muArray = [NSArray arrayWithObjects:@"11",@"22",@"33",@"44",@"55", nil];

    NSLog(@"mutalbe   %@",[muArray componentsJoinedByString:@" "]);

 

#pragma mark NSString扩展名处理

void externsion() {

   

    NSString *str = @"User/Rogntian.text";

    NSLog(@"文件的扩展名 %@", [str pathExtension]);

 

   

    NSLog(@"%@",[str stringByDeletingPathExtension]);

    

   

    NSLog(@"%@",[@"abb" stringByAppendingPathExtension:@"mov"]);

    

}

 

#pragma mark 其他用法

void other() {

   

    unichar c = [@"rongtian" characterAtIndex:3];

    NSLog(@"%c",c);

}

 

// ============================= <NSMutableString> ===================================

#pragma mark 可变字符串的创建

void stringCreate() {

   

    NSMutableString *str = [[NSMutableString alloc]initWithCapacity:10];

    // 设置字符串的内容

    [str setString:@"2356"];

        // 拼接一个字符串

    [str appendString:@"789"];    

    // 查找 356 的nsrange

  NSRange range = [str rangeOfString:@"356"];

    [str replaceCharactersInRange:range withString:@"11111"];

    

    // 插入字符串

    [str insertString:@"pola" atIndex:3];

    

     // 删除字符串

    range = [str rangeOfString:@"356"];

    [str deleteCharactersInRange:range];

}  

 

 

//创建自定义类

        SubViewController *myClass = [[SubViewControlleralloc]init];

        //创建一个可变的数组长度为10

        NSMutableArray *array = [NSMutableArrayarrayWithCapacity:10];

        //向数组中动态的添加对象

        [arrayaddObject:@"好大夫"];

        [arrayaddObject:@"水电费"];

        [arrayaddObject:@"阿瑟发"];

        [arrayaddObject:myClass];

       //向数组中插入

        [arrayinsertObject:@"插入一条数据" atIndex:1];

       for (NSObject * objectin array)

        {

           NSLog(@"输出对象数组:%@", object);

        }

 

 

          

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值