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. LinkedHashSet 元素唯一,存储取出有序

      package cn.itcast_04; import java.util.LinkedHashSet; /* * LinkedHashSet:底层数据结构由哈希表和链表组成. * 哈希表保证元 ...

  2. ZT CSDN 如何以最快的速度计算出一个二进制数中1的个数? [

    一道算法面试题:如何以最快的速度计算出一个二进制数中1的个数? [问题点数:10分,结帖人weicai_chen] 收藏 weicai_chen weicai_chen 等级: 结帖率:95.12% ...

  3. 简单的dp加贪心

    题目链接:传送门 这个题目让我纠结了好久,之后恍然大悟是求最长的递减序列,并加上贪心的算法,如果有大于两个的发射系统,应该判断使导弹的高度与此时个个发射系统的高度比较,选取高度差最小的去执行这次的拦截 ...

  4. Maven实战(九)Maven仓库简介

    目录 一.作用 Maven仓库分为本地仓库和远程仓库,集中存放项目引用的jar包,无需将jar包放在程序中,结合Maven项目的pom.xml,使得项目管理jar包更容易,有以下几个优点: 对于项目来 ...

  5. Mysql数据库的mysql Schema 究竟有哪些东西& 手工注入的基础要领

    #查看数据库版本号 mysql> select @@version; +------------+ | @@version  | +------------+ | 5.5.16-log | +- ...

  6. [JSOI2008]Blue Mary的战役地图

    嘟嘟嘟 当看到n <= 50 的时候就乐呵了,暴力就行了,不过最暴力的方法是O(n7)……然后加一个二分边长达到O(n6logn),然后我们接着优化,把暴力比对改成O(1)的比对hash值,能达 ...

  7. AE-----界面介绍

    AE-----界面介绍 一.大纲leiji 层级: 比如:高楼一层一层的盖起来的.千层蛋糕(一层一层的).地质(一层一层构造的) 图层的特征:有顺序.上面的一层总会覆盖掉下面的一层. AfterEff ...

  8. 阿里开源项目之Ant Design Pro

    本篇文章主要包含的内容有三个方面. 第一.Ant Design Pro简介; 第二.Ant Design Pro能做什么; 第三.初步使用; 我相信通过这三个方面的讲解能让你大概知道Ant Desig ...

  9. IFsvnadmin svn界面管理工具

    安装部署if.svnadmin 工具 前提是安装好svn服务器及apache+php服务器. yum -y install subversion mod_dav_svn 安装完建立一个目录用来作为sv ...

  10. 1548: Design road (思维题 做法:三分找极值)

    1548: Design road Submit Page    Summary    Time Limit: 2 Sec     Memory Limit: 256 Mb     Submitted ...