Objective-C中字符串的创建及常用方法

一、静态字符串(NSString)

1、静态字符串

   静态字符串就是不可改变的字符串,字符串的内容不可以做添加、修改、删除等操作,如"123",这个字符串创建以后就不可以变更了,它·就是"123",但是它的指针可以重新指向其它字符串。

2、静态字符串(NSString)的创建

1.使用字符字面值常量进行创建(一般比较常用)

NSString *str1=@"字符串";//系统分配内存无需程序员自己处理

2.手动创建空字符串

NSString *str2=[[NSString alloc] init];
NSString *str3=[NSString string];//用这两种方法创建的字符串意义不大因为不可修改一直是空串

3.手动创建字符串并且赋初值

NSString *str4=[[NSString alloc]initWithString:@"jack"];
NSString *str5=[NSString stringWithString:str4];

4.按照一定格式拼接字符串

int age = 10;
NSString *name = @"Rose";
NSString *str4 = [[NSString alloc] initWithFormat:@"%@ is %d years old!", name, age];
NSString *str4_ = [NSString stringWithFormat:@"%@ is %d years old!", name, age];

3.静态字符串中常用的一些方法

1.获取字符串的长度

NSString *name = @"Rose";
int len=name.length;//可以用于判断字符串是否为空,长度为0及为空

2.获取子字符串操作

//示例字符串
NSString *str = @"The NSString class and its mutable subclass";
//1.从索引位置开始查找子字符串
NSString *str1=[str substringFromIndex:1];
//2.从开头到索引位置但不包含索引位置对应的字符
NSString *str2 = [str substringToIndex:5];
//3.获取某个范围的子字符串
//NSRange range = {4,8};//c语言的方式
NSRange range = NSMakeRange(4, 8);
NSString *str3 = [str substringWithRange:range];

3.字符串的比较操作

NSString *passwd = @"123";
if ([passwd isEqualToString:@"123456"]) {  //isEqualToString字符串比较返回BOOL值
     NSLog(@"the same");
   } else{
            NSLog(@"not the same");
         }
NSString *addr = @"a";
NSComparisonResult result = [addr compare:@"b"];//compare返回一个NSComparisonResult结构体
 if (result == NSOrderedAscending) {
         NSLog(@" < ");
     } else if (result == NSOrderedSame){
            NSLog(@" = ");
        } else{
            NSLog(@" > ");
        }
NSString *p1= @"a";
NSString *p2= @"a";
 if ([p1 isEqual:p2]) {
            NSLog(@"是同一个对象");
        } else{
            NSLog(@"不是同一个对象");
        }

4.判断字符串的前缀和后缀

NSString *url = @"http:png//f.hiphotos.baidu.com/image/h%3D300/sign=16e69d830f4f7png8f09f0b9cf349300a83/63d0f703918fa0ece5f167da2a9759ee3d6ddb37.png";
if ([url hasSuffix:@".jpg"]){  //判断字符串的后缀是否为.jpg
      NSLog(@"是一个图片");
  }
    
  if ([url hasPrefix:@"http:"]) {   //判断字符串的前缀是否为.jpg

        NSLog(@"是一个网址");
  }

5.判断字符串是否包含某一个子字符串

NSString *url = @"http:png//f.hiphotos.baidu.com/image/h%3D300/sign=16e69d830f4f7png8f09f0b9cf349300a83/63d0f703918fa0ece5f167da2a9759ee3d6ddb37.png";
if ([url containsString:@"baidu.com"]) {  //containsString用于判断字符串的包含关系
            NSLog(@"是百度的资源");
        }

6.获取某个字符串在原字符串里面的具体位置

NSString *url = @"http:png//f.hiphotos.baidu.com/image/h%3D300/sign=16e69d830f4f7png8f09f0b9cf349300a83/63d0f703918fa0ece5f167da2a9759ee3d6ddb37.png";
NSRange r = [url rangeOfString:@"png"];//NSRange结构体包含location、length及索引位置(1)和长度(2)
        if (r.length == 0){
            NSLog(@"不存在");
        } else{
            NSLog(@"存在:%lu %lu", r.location, r.length);
        }

7.在一个字符串后面追加一个字符串形成新的字符串

NSString *hStr = @"abc";
NSString *newStr = [hStr stringByAppendingString:@"de"];//在末尾追加"de"
NSString *newStr2 = [hStr stringByAppendingFormat:@"my name is %@", @"jake"];//以一定格式追加字符串
NSLog(@"%@ %@", hStr, newStr);

8.数字型字符串转化为对应的数字类型

 NSString *numStr = @"123";
 int num = [numStr intValue];
 double num2=[numStr doubleValue]; 
 float num3=[numStr floatValue];       

二、动态字符串(可变字符串NSMutableString)

1、静态字符串

可以通过一些方法对字符串的内容进行添加、修改、删除等操作

2、动态字符串(NSMutableString)的创建

NSMutableString *mStr = [[NSMutableString alloc] initWithCapacity:0];
NSMutableString *mStr_ = [NSMutableString stringWithCapacity:0];

3.静态字符串中常用的一些方法

1.字符串的追加

 NSMutableString *mStr_ = [NSMutableString stringWithCapacity:0];
 [mStr appendString:@"Hello"];//在字符串尾部追加"Hello"
 [mStr appendFormat:@" my name is %@",@"jake"];//以一定格式追加先加"my name is"然后加"jake"

2.字符串的插入

[mStr insertString:@"World " atIndex:6];//atIndex插入位置的索引

3.字符串内容的替换

NSRange rg = [mStr rangeOfString:@"Rose"];//找出要替换子串的索引位置
[mStr replaceCharactersInRange:rg withString:@"Jack"];//用"Jack"替换索引位置处的字符串

[mStr replaceOccurrencesOfString:@"ABC" withString:@"one two three" options:NSLiteralSearch range:NSMakeRange(0, 3)];//将字符串中的"ABC"替换为"one two three",替换模式为NSLiteralSearch范围用NSRange结构体表示
 /*
   NSCaseInsensitiveSearch = 1,    //不区分大小写比较
   NSLiteralSearch = 2,    //逐字节比较 区分大小写
   NSBackwardsSearch = 4,    //从字符串末尾开始搜索
  */

4.删除字符串中的内容

 [mStr deleteCharactersInRange: NSMakeRange(0, 12)];//NSMakeRange(0, 12)构造NSRange类型结构体,表示要删除的字符串内容

5.重新设置字符串的内容

 [mStr setString:@"abc"];

猜你喜欢

转载自blog.csdn.net/xutaoshuaiqi/article/details/81271877
今日推荐