ios不可改变NSString类和可改变NSMutableString类的使用


一, NSString的常用用法
 
1,创建对象两种方法
 
1)   ”-”号方法  alloc + 初始化
initWithString  
NSString *str = [[NSString alloc] initWithString:@"iPhone 4"];
 
 
initWithFormat  
这种方法比initWithString更强大可以设置格式,如上述的字符串” iPhone 4” 可以写成
NSString *str = [[NSStringalloc] initWithFormat:@"iPhone%d",4];
这里的4是自定义的可以根据自己的需要随时改变,
 
 
 
2)   这是构造便利器
stringWithString
            NSString *str = [NSString stringWithString:@"iPhone5"];
 
stringWithFormat
同样这种方法比stringWithString功能强大,可以设置输出格式
            NSString *str = [NSString stringWithFormat:@"iPhone%d",5];
这里的5是自定义的可以根据自己的需要随时改变
其实凡是方法名最后是以Format结尾的都是可以设置格式的,下面不在赘述
2,求字符串长度    length
 
     NSString *str = [NSString stringWithString:@"Helloworld];
     NSUInteger length = [str length];
     NSLog(@"length = %lu",length);
    这里长度应设置为无符号长整型
3,根据给定的下标获取字符串中的字符
 
     NSString *str = [NSStringstringWithString:@"Hello world];
      unichar chara = [str characterAtIndex:5];
      NSLog(@"%c",chara);
 
4,判断是否以指定的字符串开头或者以指定的字符串结尾
    1),判断一个字符串是否以某个字符串开头  hasPrefix, 返回值为BOOL类  型
          例如:判断一个字符串是否以http开头是否以.com结束
     NSString *str = [[NSString  alloc]initWithFormat:@"http://www.baidu.com"];
     判断是否以http开头
     BOOL  isPrefix = [str hasPrefix:@"http"];
      NSLog(@"%d",isPrefix);
2),判断一个字符串是否以某个字符串结尾  hasSuffix, 返回值为BOOL类
   例如判断一个字符串是否以.com结束
 
    BOOL isSuffix = [str hasSuffix:@".com"];
    NSLog(@"%d",isSuffix);
 
5,查找指定字符串的范围
NSRange是结构体类型的类型重定义,range是结构体类型
NSRange range = [str4 rangeOfString:@"ttp"];
        if (range.length == 0) {
            NSLog(@"没有找到对应的字符串");
        } else {
           
            NSLog(@"location = %lu length = %lu",range.location,range.length);
        }
 
在这里我们可以看到输出下标要用到结构体中结构体变量访问结构体成员的比较麻烦,OC提供了一个方法NSStringFromRange将NSRange类型的结构体变量转变为字符串对象
            NSLog(@"%@",NSStringFromRange(range));
 
6,获取子字符串
NSString *str = [[NSString  alloc]initWithFormat:@"http://www.baidu.com"];
 
        1)获取给定下标之后的子字串,包含指定下标对应的字符substringFromIndex
 
        NSString *str1 = [str substringFromIndex:5];
        NSLog(@"str1 = %@",str1);
       
        2)获取从开始位置到给定下标之前的子字符串,但是不包含指定下标对应的字符   substringToIndex 
        str1 = [str substringToIndex:7];
        NSLog(@"str1 = %@",str1);
        3)获取从给定下标范围内的子字符串,即按照所给出的位置,长度,任意地从字符串中截取子串  substringWithRange:
如: 获取www
        str1 = [str substringWithRange:NSMakeRange(0, 3)];
        NSLog(@"str1 = %@",str1);
这里NSMakeRange(0, 3)快速给定结构体变量ange里的下标成员和长     度成员
 
7,拼接字符串
        NSString *str = [NSStringstringWithFormat:@"Lanou"];
       
        1)lanou后拼接henan  stringByAppendingString:
        NSString *newStr = [str stringByAppendingString:@"henan"];
        NSLog(@"newStr = %@",newStr);
       
        2) lanou后拼接henan9ban  stringByAppendingFormat:
        stringByAppendingFormat:比stringByAppendingString:功能强大,因为前者可以使用格式串,
        newStr = [str stringByAppendingFormat:@"9ban%@",newStr];
        NSLog(@"newStr = %@",newStr);
       
8,替换字符串
        NSString *str = [NSStringstringWithFormat:@"lanou is a big big big company"];
        1),将big替换成small  stringByReplacingOccurrencesOfString:
        NSString *newStr = [str stringByReplacingOccurrencesOfString:@"big"withString:@"small"];
        NSLog(@"newStr = %@",newStr);
在这里会将所有的big都换成small
 
        2),只将第一个big替换成small  stringByReplacingCharactersInRange:
        newStr = [str stringByReplacingCharactersInRange:NSMakeRange(11, 3) withString:@"small"];
       NSLog(@"newStr = %@",newStr);
       
  9,字符串比较  compare
        NSComparisonResult result =[@"111"compare:@"111"];
        NSLog(@"result = %ld",result);
这里结果只有三种1,0,-1,第一:按照降序,即前者大于后者,结果为1,第二:两者相等,结果为0,第三:按照升序,前者小于后者,结果为-1,
10,字符串和数值类型转换 
    1),将字符串"123" 转换为整数123  intValue
 
       intValue方法从第一个字符开始读取数字,如果在遇到了除空格之外的字符时,将前面的空格忽略掉,继续往下找,读取数字,直到遇到非数字时结束
        int value =  [@"   a1 2a3abc"intValue];
        NSLog(@"%d",value);
        float value1 = [@"   12a3abc"floatValue];
        NSLog(@"%.2f",value1);
    2),将数字转为字符串对象
        NSString *str = [NSStringstringWithFormat:@"%f",5.2];
  11,字符串大小写转换
     1),将@"lan OU"全部转换为大写  uppercaseString
        NSString *upperStr = [@"lan OU iS a big coMpany"uppercaseString];
        NSLog(@"%@",upperStr);
       
       
     2),将@"lan OU"全部转换为小写   lowercaseString
        upperStr = [@"lan OU iS a big coMpany"lowercaseString];
        NSLog(@"%@",upperStr);
 
       
      3),将@"lan OU"每个单词的首字母大写   capitalizedString
        upperStr = [@"lan OU iS a big coMpany"capitalizedString];
        NSLog(@"%@",upperStr);
12,将C语言的字符串转换为OC里的字符串对象  initWithUTF8String:
例如:
        char password[20] = {};  //定义一个密码
        NSLog(@"请输入密码:");
        scanf("%s",password);
在这里先定义一个NSString类型的对象passWord用来接收从C语言的字符串password转换的OC对象
        NSString *passWord= [[NSStringalloc] initWithUTF8String:password];

二,NSMutableString常用用法
 
  对可变字符串的增删改方法,都是在原字符串的基础上进行修改的,所有修改之后的原字符串的内容发生了改变,所有无需返回值
由于字符串可改变,因此每一次操作后原字符串都改变为操作后的字符串
1,创建一个可改变的字符串对象    stringWithFormat
        NSMutableString *str1 = [NSMutableStringstringWithFormat:@"lanouhenan"];
 
        1)在字符串str1基础上拼接Frank
        [str1 appendFormat:@"%@",@"Frank"];
        NSLog(@"%@",str1);(输出结果为:lanouhenanFrank)
 
        2)在字符串str1基础上拼接Frank
        [str1 appendFormat:@"%@",@"Frank"];
        NSLog(@"%@",str1);(输出结果为:lanouhenanFrankFrank)
       
        3)删除字符串,   deleteCharactersInRange
                     在原字符串的基础上删除henan
        [str1 deleteCharactersInRange:NSMakeRange(5, 5)];
        NSLog(@"%@",str1); (输出结果为:lanouFrankFrank)
 
        4) 插入字符串   insertString: atIndex:
                     在原字符串的基础上插入lanou
        [str1 insertString:@";lanou"atIndex:0];
        NSLog(@"%@",str1); (输出结果为:lanoulanouFrankFrank)
 
        5)在原字符串基础上将第一个Frank替换成Duke;
        [str1 replaceCharactersInRange:NSMakeRange(10, 5) withString:@"Duke"];
        NSLog(@"%@",str1); (输出结果为:lanoulanoDukekFrank)

时间: 2024-10-11 01:25:38

ios不可改变NSString类和可改变NSMutableString类的使用的相关文章

ios动态获得键盘高度,并改变对话框的位置

NSNotificationCenter:键盘出现.消失时的通知 UIKeyboardWillShowNotification;UIKeyboardDidShowNotification;UIKeyboardWillHideNotification;UIKeyboardDidHideNotification; 在要使用键盘的视图控制器中(既viewDidLoad中),接收键盘事件的通知: - (void) registerForKeyboardNotifications{ //键盘改变时候会调用

根据NSString字符串长度自动改变UILabel的frame

相信大家都遇到过这种需求.如果一个不慎,容易做成这个模样: 话不多说,上代码. 1.首先,设置UILabel的相关属性 1 UILabel *tmpLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 200, [UIScreen mainScreen].bounds.size.width - 20, 20)]; 2 [tmpLabel setNumberOfLines:0]; 3 [self.view addSubview:tmpLabel

hdu3315 /最大权最佳匹配(最大权下尽量不改变次序)(有权田忌赛马类问题)/费用流

题意:2个人比赛,每场比赛有得分,每场每人派一支圣兽( brute ,字典翻译为畜生,感觉这里不太符╮(╯▽╰)╭),有攻击力和血条...一堆规则... 合理安排,让1号人获得最大分数,并尽量不要改变原来出场顺序(1,2,3...n),并求出相似度(没改变的场数/n) 思路:显然建二分图,赢的话就连负边,输就是正边,x->y,,再跑 s->t费用流,按题意关键是如何在最大费用情况下,尽量流 i-->i`的边,:扩大主要费用法!费用扩大比n稍大倍,这里扩大100倍,那么如果是 i-->

iOS Developer Libray (中文版)-- Defining Classes 定义类

该篇是我自己学习iOS开发时阅读文档时随手记下的翻译,有些地方不是很准确,但是意思还是对的,毕竟我英语也不是很好,很多句子无法做到准确的字词翻译,大家可以当做参考,有错误欢迎指出,以后我会尽力翻译的更好,大家一起努力共同进入,有兴趣的同学可以一起学习. 注:部分图片没有上传,可以点我下载源文件: Defining Classes 定义类 When you write software for OS X or iOS, most of your time is spent working with

iOS 基础类解析 - NSString

太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 以下从苹果官网摘录的 NSString 的目录信息,大家发现了,条目太多,不过看一下分类,一共24个,好像少很多了吧,就是这样,理解了每一个分类所

类的扩展--类目--ios

person+money.h  这是类目类 #import "Person.h" //这是扩展person类的接口类,独立一个文件 @interface Person (Money) -(void) haveMoney; @end person+money.m 这是类目类 #import "Person+Money.h" //这是扩展person类的实现类,独立一个文件 @implementation Person (Money) -(void) haveMoney

黑马程序员--Foundation框架之--NSString类以及它的子类NSMutableString类

继续看一下Foundation框架中的常用对象:NSString和NSMutableString 在OC中NSString对象是不可变的,和Java中的String一样的,而NSMutableString是可变的,和Java中的StringBuilder一样. 一.NSString对象 在OC中,NSString对象是非常重要的一个对象,也是最基础的一个对象,是用来处理字符串的常用类. 下面来看一下NSString的一些方法的使用: 1.创建的方法 // 字符串的创建方式 NSString *s

MFC 编辑框中字体大小改变,行高不能改变,只能显示一半的问题,已解决。

CKagulaCEdit是CEdit的一个继承类,m_edit的CKagulaCEdit类型的一个变量 调用的时候,是这样的: 编辑框中字体大小改变,行高不能改变,只能显示一半的问题,问题如下: 这时的显示是这样的: 添加 CEdit::SetFont(m_pfont);这行后, 显示正常:

iOS开发——swift篇&经典语法(十七)类与结构

类与结构 类与结构是编程人员在代码中会经常用到的代码块.在类与结构中可以像定义常量,变量和函数一样,定义相关的属性和方法以此来实现各种功能. 和其它的编程语言不太相同的是,Swift不需要单独创建接口或者实现文件来使用类或者结构.Swift中的类或者结构可以在单文件中直接定义,一旦定义完成后,就能够被直接其它代码使用. 注意:一个类的实例一般被视作一个对象,但是在Swift中,类与结构更像是一个函数方法,在后续的章节中更多地是讲述类和结构的功能性. 1.类和结构的异同 类和结构有一些相似的地方,

数组方法总结---改变原数组和不改变数组

<script>先来看看基础 // 1 数组定义方法 new Array 或 字面量 var arr = new Array() var arr1 = [1, 2, 3, 4, 5, 6] </script> 需要注意的是 new Array()创建的数组只有一位的时候,第一位代表的数组长度,而不是第一位的值,而且不能为小数 接下来是数组方法:可以先分为两类  改变原数组和不改变原数组 改变原数组:push() 用于在数组的末端添加一个或多个元素,并返回添加新元素后的数组长度 //