NSMutableString类继承自NSString,所以在NSString中的方法在NSMutableString都可以使用. NSMutableString和NSString的区别在于NSMutableString是动态的字符串,可以动态的添加,修改,删除等。在前面提到了就和.NET中的string和StringBuilder的区别一样。

  1. 添加字符串

  向字符串末尾添加字符串可以使用appendString方法和appendFormat方法。appendString方法主要用于向字符串末尾添加一个字符串;appendFormat 方法用于向字符串末尾添加多种类型的字符串,相当于.NET中的appendFormat 方法使用占位符。

NSMutableString *str=[[NSMutableString alloc] init];
[str appendString:@"NSMutableString 字符串"];
NSLog(@"appendString=%@",str); [str appendFormat:@" --我的名字:%@ , 年龄 %d",@"Object C",];
NSLog(@"appendFormat: %@",str);

测试例子

  测试效果如下:

-- ::21.476 ObjectC10[:] appendString=NSMutableString 字符串
-- ::21.478 ObjectC10[:] appendFormat: NSMutableString 字符串 --我的名字:Object C , 年龄

测试结果

  2. 删除字符串

  在NSMutableString中使用stringWithString方法来初始化字符串;

  使用rangeOfString获取某个字符串在原字符串的位置以及长度;

  使用deleteCharactersInRange方法删除特定位置的字符串

NSMutableString *str=[NSMutableString stringWithString:@"Object C 之NSMutableString类"];
NSLog(@"stringWithString= %@ ",str); NSRange range= [str rangeOfString:@"Mutable"];
NSLog(@"Location=%d",range.location);
NSLog(@"length=%d",range.length); [str deleteCharactersInRange:range];
NSLog(@"deleteCharactersInRange=%@",str);

测试例子

  测试效果如下:

-- ::34.078 ObjectC10[:] stringWithString= Object C 之NSMutableString类
-- ::34.080 ObjectC10[:] Location=
-- ::34.080 ObjectC10[:] length=
-- ::34.080 ObjectC10[:] deleteCharactersInRange=Object C 之NSString类

测试结果

  3. 插入字符串

  在NSMutableString中在某个字符串特定位置添加一个字符串使用insertString方法;

NSMutableString *str=[NSMutableString stringWithString:@"Obejct C"];
NSLog(@"%@",str);
NSString *str2=@"学习";
[str insertString:str2 atIndex:];
NSLog(@"insertString= %@",str);

测试例子

  测试效果如下:

-- ::14.517 ObjectC10[:] Obejct C
-- ::14.519 ObjectC10[:] insertString= Obejct学习 C

测试结果

  4.字符串拷贝

  因为NSMutableString是引用类型,也就是指针类型,当一个变量赋值给另外一个变量的时候,两者其实是指向的同一个地址。

//创建字符串
NSMutableString *str1 = [NSMutableString stringWithString: @"字符串1"];
NSMutableString *str2; //字符串赋值
str2 = str1; [str2 appendString: @" 和字符串2"]; NSLog (@"str1 = %@", str1); NSLog (@"str2 = %@", str2);

测试例子

  测试效果如下:

-- ::33.667 ObjectC10[:] str1 = 字符串1 和字符串2
-- ::33.683 ObjectC10[:] str2 = 字符串1 和字符串2

测试结果

  5. 字符串类型转换

  intValue用于将字符串类型转换为int 类型

  integerValue用于将字符串类型转换为NSInteger 类型

  floatValue用于将字符串类型转换为float类型

  doubleValue用于将字符串类型转换为double类型

NSString *str1=@"";
int value1=[str1 intValue];
NSLog(@"转化为int类型: str1=%d",value1); NSString *str2=@"";
NSInteger value2=[str2 integerValue];
NSLog(@"转化为NSInteger类型: str2=%i",value2); NSString *str3=@"3.1415";
float value3=[str3 floatValue];
NSLog(@"转换为float类型: str3=%0.4f",value3); double value4=[str3 floatValue];
NSLog(@"转换为double类型: str3=%0.4f",value4);

测试例子

  测试效果如下:

-- ::00.070 ObjectC10[:] 转化为int类型: str1=
-- ::00.094 ObjectC10[:] 转化为NSInteger类型: str2=
-- ::00.094 ObjectC10[:] 转换为float类型: str3=3.1415
-- ::00.095 ObjectC10[:] 转换为double类型: str3=3.1415

测试结果

  如果字符串格式有问题,则转换的时候会报异常。

Object C学习笔记9-字符串NSMutableString的更多相关文章

  1. Object C学习笔记22-#define 用法

    上一篇讲到了typedef 关键字的使用,可以参考文章 Object C 学习笔记--typedef用法 .而在c中还有另外一个很重要的关键字#define. 一. #define 简介 在C中利用预 ...

  2. Object C学习笔记24-关键字总结

    学习Object C也有段时间了,学习的过程中涉及到了很多Object C中的关键字,本文总结一下所涉及到的关键字以及基本语法. 1.  #import #import <> 从syste ...

  3. Object C学习笔记21-typedef用法

    在上一章的学习过程中遇到了一个关键字typedef,这个关键字是C语言中的关键字,因为Object C是C的扩展同样也是支持typedef的. 一. 基本作用 typedef是C中的关键字,它的主要作 ...

  4. Object C学习笔记18-SEL,@ selector,Class,@class

    本章是对上一章<<Object C学习笔记17-动态判断和选择器>>的一点补充,所以比较简单点. 一. SEL 类型 在上一篇介绍了几个方法,都只是介绍了其使用方式但是没有具体 ...

  5. Object C学习笔记17-动态判断和选择器

    当时学习Object C的时被人鄙视了一顿,说使用.NET的思想来学Object C就是狗屎:不过也挺感谢这位仁兄的,这让我学习的时候更加的谨慎.今天的学习笔记主要记录Object C中的动态类型相关 ...

  6. 1.C#基础学习笔记3---C#字符串(转义符和内存存储无关)

    技术qq交流群:JavaDream:251572072  教程下载,在线交流:创梦IT社区:www.credream.com ------------------------------------- ...

  7. Object C学习笔记10-静态方法和静态属性

    在.NET中我们静态使用的关键字static有着举足轻重的作用,static 方法可以不用实例化类实例就可以直接调用,static 属性也是如此.在Object C中也存在static关键字,今天的学 ...

  8. Object C学习笔记24-关键字总结(转)

    学习Object C也有段时间了,学习的过程中涉及到了很多Object C中的关键字,本文总结一下所涉及到的关键字以及基本语法. 1.  #import #import <> 从syste ...

  9. 【学习笔记】字符串—马拉车(Manacher)

    [学习笔记]字符串-马拉车(Manacher) 一:[前言] 马拉车用于求解连续回文子串问题,效率极高. 其核心思想与 \(kmp\) 类似:继承. --引自 \(yyx\) 学姐 二:[算法原理] ...

  10. 「学习笔记」字符串基础:Hash,KMP与Trie

    「学习笔记」字符串基础:Hash,KMP与Trie 点击查看目录 目录 「学习笔记」字符串基础:Hash,KMP与Trie Hash 算法 代码 KMP 算法 前置知识:\(\text{Border} ...

随机推荐

  1. 配置nginx官网yum源

    由于yum源中没有我们想要的nginx,那么我们就需要创建一个“/etc/yum.repos.d/nginx.repo”的文件,其实就是新增一个yum源 二.添加nginx.repo 文件: [roo ...

  2. 解决 hibernate cannot define positional parameter after any named parameters have been defined

    解决 hibernate  cannot define positional parameter after any named parameters have been defined 把模糊查询的 ...

  3. Spring+微信小程序 卡券打通

    近期公司项目需要使用到微信卡券模块,主要做的是在小程序打通微信卡券,实现小程序领取卡券的功能效果. 简单说下涉及的东西: Springboot—使用springboot做后端接口,非常便捷 并且根本是 ...

  4. C++暑期学习笔记

    # C++初步学习笔记 一.命名空间(namespace)相关 1 个人理解: 为了避免整合资源中存在的重名矛盾而采取的区别资源的措施: 2 命名空间的定义: 比如要定义一个命名空间A: namesp ...

  5. Weblogic 设置优先引用web项目的jar包

    在WEB-INF/weblogic.xml中进行如下配置: <container-descriptor> <prefer-web-inf-classes>true</pr ...

  6. IntelliJ 禁用 Search Everywhere

    发现自: https://youtrack.jetbrains.com/issue/IDEA-114933#comment=27-603899 Open lib/resources.jar/idea/ ...

  7. head头的设计:rfcn light-head rfcn

    faster缺点:1.不是全卷积,roi出来后是两个fc层,这样会丧失平移变性.   2.每个roi都要单独经过两个fc层,也就是分别进行分类和回归,耗时 也有种说法是roi-pooling后导致平移 ...

  8. Week4:Neural Networks难点记录

    为什么θ的维度是Sj+1*(Sj+1)? 课堂PPT没有两层单元个数不同的状态,故举一个例子就知道了 and sj+1=4, so sj+1×(sj+1)=4×3. 编程作业: Multi-class ...

  9. Spring源码分析(一)基本介绍

    摘要:本文结合<Spring源码深度解析>来分析Spring 5.0.6版本的源代码.若有描述错误之处,欢迎指正. 前言 作为一名开发人员,阅读源码是一个很好的学习方式.本文将结合< ...

  10. FFMpeg笔记(五) 录制小视频时几个问题解决

    1. YUV数据在使用avfilter scale时在特定的分辨率下UV分量不对 由于是小视频,那么分辨率不需要太高,但是有的视频源是1080p,甚至有的是4K的,所以对视频源进行scale非常有必要 ...