Object C学习笔记9-字符串NSMutableString
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的更多相关文章
- Object C学习笔记22-#define 用法
上一篇讲到了typedef 关键字的使用,可以参考文章 Object C 学习笔记--typedef用法 .而在c中还有另外一个很重要的关键字#define. 一. #define 简介 在C中利用预 ...
- Object C学习笔记24-关键字总结
学习Object C也有段时间了,学习的过程中涉及到了很多Object C中的关键字,本文总结一下所涉及到的关键字以及基本语法. 1. #import #import <> 从syste ...
- Object C学习笔记21-typedef用法
在上一章的学习过程中遇到了一个关键字typedef,这个关键字是C语言中的关键字,因为Object C是C的扩展同样也是支持typedef的. 一. 基本作用 typedef是C中的关键字,它的主要作 ...
- Object C学习笔记18-SEL,@ selector,Class,@class
本章是对上一章<<Object C学习笔记17-动态判断和选择器>>的一点补充,所以比较简单点. 一. SEL 类型 在上一篇介绍了几个方法,都只是介绍了其使用方式但是没有具体 ...
- Object C学习笔记17-动态判断和选择器
当时学习Object C的时被人鄙视了一顿,说使用.NET的思想来学Object C就是狗屎:不过也挺感谢这位仁兄的,这让我学习的时候更加的谨慎.今天的学习笔记主要记录Object C中的动态类型相关 ...
- 1.C#基础学习笔记3---C#字符串(转义符和内存存储无关)
技术qq交流群:JavaDream:251572072 教程下载,在线交流:创梦IT社区:www.credream.com ------------------------------------- ...
- Object C学习笔记10-静态方法和静态属性
在.NET中我们静态使用的关键字static有着举足轻重的作用,static 方法可以不用实例化类实例就可以直接调用,static 属性也是如此.在Object C中也存在static关键字,今天的学 ...
- Object C学习笔记24-关键字总结(转)
学习Object C也有段时间了,学习的过程中涉及到了很多Object C中的关键字,本文总结一下所涉及到的关键字以及基本语法. 1. #import #import <> 从syste ...
- 【学习笔记】字符串—马拉车(Manacher)
[学习笔记]字符串-马拉车(Manacher) 一:[前言] 马拉车用于求解连续回文子串问题,效率极高. 其核心思想与 \(kmp\) 类似:继承. --引自 \(yyx\) 学姐 二:[算法原理] ...
- 「学习笔记」字符串基础:Hash,KMP与Trie
「学习笔记」字符串基础:Hash,KMP与Trie 点击查看目录 目录 「学习笔记」字符串基础:Hash,KMP与Trie Hash 算法 代码 KMP 算法 前置知识:\(\text{Border} ...
随机推荐
- 配置nginx官网yum源
由于yum源中没有我们想要的nginx,那么我们就需要创建一个“/etc/yum.repos.d/nginx.repo”的文件,其实就是新增一个yum源 二.添加nginx.repo 文件: [roo ...
- 解决 hibernate cannot define positional parameter after any named parameters have been defined
解决 hibernate cannot define positional parameter after any named parameters have been defined 把模糊查询的 ...
- Spring+微信小程序 卡券打通
近期公司项目需要使用到微信卡券模块,主要做的是在小程序打通微信卡券,实现小程序领取卡券的功能效果. 简单说下涉及的东西: Springboot—使用springboot做后端接口,非常便捷 并且根本是 ...
- C++暑期学习笔记
# C++初步学习笔记 一.命名空间(namespace)相关 1 个人理解: 为了避免整合资源中存在的重名矛盾而采取的区别资源的措施: 2 命名空间的定义: 比如要定义一个命名空间A: namesp ...
- Weblogic 设置优先引用web项目的jar包
在WEB-INF/weblogic.xml中进行如下配置: <container-descriptor> <prefer-web-inf-classes>true</pr ...
- IntelliJ 禁用 Search Everywhere
发现自: https://youtrack.jetbrains.com/issue/IDEA-114933#comment=27-603899 Open lib/resources.jar/idea/ ...
- head头的设计:rfcn light-head rfcn
faster缺点:1.不是全卷积,roi出来后是两个fc层,这样会丧失平移变性. 2.每个roi都要单独经过两个fc层,也就是分别进行分类和回归,耗时 也有种说法是roi-pooling后导致平移 ...
- Week4:Neural Networks难点记录
为什么θ的维度是Sj+1*(Sj+1)? 课堂PPT没有两层单元个数不同的状态,故举一个例子就知道了 and sj+1=4, so sj+1×(sj+1)=4×3. 编程作业: Multi-class ...
- Spring源码分析(一)基本介绍
摘要:本文结合<Spring源码深度解析>来分析Spring 5.0.6版本的源代码.若有描述错误之处,欢迎指正. 前言 作为一名开发人员,阅读源码是一个很好的学习方式.本文将结合< ...
- FFMpeg笔记(五) 录制小视频时几个问题解决
1. YUV数据在使用avfilter scale时在特定的分辨率下UV分量不对 由于是小视频,那么分辨率不需要太高,但是有的视频源是1080p,甚至有的是4K的,所以对视频源进行scale非常有必要 ...