Object-C中的字符串对象2-可变字符串
//
// main.m
// 字符串-可变字符串
//
// Created by zhangqs008 on 14-2-13.
// Copyright (c) 2014年 zhangqs008. All rights reserved.
// #import <Foundation/Foundation.h> int main(int argc, const char * argv[])
{ @autoreleasepool { NSString *str1=@"this is string A";
NSString *search;
NSString *replace;
NSMutableString *mutableStr;
NSRange subStr; //01.从不可变字符串创建可变字符串
mutableStr=[NSMutableString stringWithString:str1];
NSLog(@"01 %@",mutableStr); //02.插入字符,注意:是直接修改的字符串对象,无返回值
[mutableStr insertString:@" mutable" atIndex:7];
NSLog(@"02 %@",mutableStr); //03.插入末尾进行有效拼接
[mutableStr insertString:@" and string B" atIndex:[mutableStr length]];
NSLog(@"03 %@",mutableStr); //04.直接用appendString
[mutableStr appendString:@" and string C"];
NSLog(@"04 %@",mutableStr); //05.根据范围删除字符串 deleteCharactersInRange(从*开始,删除*个字符)
[mutableStr deleteCharactersInRange:NSMakeRange(16,13)];
NSLog(@"05 %@",mutableStr); //06.查找然后将其删除
subStr=[mutableStr rangeOfString:@"string B and "];
if(subStr.location!=NSNotFound)
{
[mutableStr substringWithRange:subStr];
NSLog(@"06 %@",mutableStr); } //07.直接设置为可变字符串
[mutableStr setString:@"this is string A"];
NSLog(@"07 %@",mutableStr); //08.替换一些字符
[mutableStr replaceCharactersInRange:NSMakeRange(8, 8) withString:@"a mutable string"];
NSLog(@"08 %@",mutableStr); //09.查找和替换
search=@"this is";
replace=@"An example of"; subStr=[mutableStr rangeOfString:search];
if(subStr.location!=NSNotFound)
{
[mutableStr replaceCharactersInRange:subStr withString:replace];
NSLog(@"09 %@",mutableStr);
} //10.查找和替换所有匹配项
search=@"a";
replace=@"X";
subStr=[mutableStr rangeOfString:search];
while (subStr.location!=NSNotFound) {
[mutableStr replaceCharactersInRange:subStr withString:replace];
subStr=[mutableStr rangeOfString:search];
}
NSLog(@"10 %@",mutableStr); //也可以这样写
[mutableStr replaceOccurrencesOfString:search withString:replace options:nil range:NSMakeRange(0, [mutableStr length])]; NSLog(@"10 %@",mutableStr); }
return 0;
}
输出结果:
2014-02-13 20:38:30.074 05.字符串-可变字符串[997:303] 01 this is string A
2014-02-13 20:38:30.076 05.字符串-可变字符串[997:303] 02 this is mutable string A
2014-02-13 20:38:30.079 05.字符串-可变字符串[997:303] 03 this is mutable string A and string B
2014-02-13 20:38:30.079 05.字符串-可变字符串[997:303] 04 this is mutable string A and string B and string C
2014-02-13 20:38:30.080 05.字符串-可变字符串[997:303] 05 this is mutable string B and string C
2014-02-13 20:38:30.080 05.字符串-可变字符串[997:303] 06 this is mutable string B and string C
2014-02-13 20:38:30.081 05.字符串-可变字符串[997:303] 07 this is string A
2014-02-13 20:38:30.081 05.字符串-可变字符串[997:303] 08 this is a mutable string
2014-02-13 20:38:30.081 05.字符串-可变字符串[997:303] 09 An example of a mutable string
2014-02-13 20:38:30.082 05.字符串-可变字符串[997:303] 10 An exXmple of X mutXble string
2014-02-13 20:38:30.082 05.字符串-可变字符串[997:303] 10 An exXmple of X mutXble string
Program ended with exit code: 0
Object-C中的字符串对象2-可变字符串的更多相关文章
- Object-C中的字符串对象1-不可变字符串
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { ...
- 不可变字符串String与可变字符串StringBuilder、StringBuffer使用详解
String字符串 char类型只能表示一个字符,而String可以表示字符串,也就是一个字符序列.但String不是基本类型,而是一个定义好的类,是一个引用类型.在Java中,可以将字符串直接量赋给 ...
- JS中实现JSON对象和JSON字符串之间的相互转换
对于主流的浏览器(比如:firefox,chrome,opera,safari,ie8+),浏览器自己提供了JSON对象,其中的parse和stringify方法实现了JSON对象和JSON字符串之间 ...
- Java中JNI的使用详解第四篇:C/C++中创建Java对象和String字符串对象及对字符串的操作方法
首先来看一下C/C++中怎么创建Java对象:在JNIEnv中有两种方法是用来创建Java对象的: 第一种方法: jobject NewObject(jclass clazz , jmethodI ...
- Java中String被称为不可变字符串的原因
很多东西,看似可变,实际上不过是是新桃换旧符罢了. 代码: /** * String之所以被称为不可变字符串 */ static void testString(){ String str = &qu ...
- javascript中的字符串对象和数组对象
1.javascript的对象的概念 在javascript中,除了null和undefined以处,其他的数据类型都被定义成了对象 也可以用创建对象的方法定义变量,string,math,array ...
- javascript中的字符串对象
1.javascript的对象的概念 在javascript中,除了null和undefined以处,其他的数据类型都被定义成了对象 也可以用创建对象的方法定义变量,string,math,array ...
- java中String是对象还是类?详解java中的String
有很多人搞不懂对象和类的定义.比如说java中String到底是对象还是类呢? 有人说String 既可以说是类,也可以说是对象. 其实他这么说也没问题, 类和对象其实都是一个抽象的概念. 我们可以把 ...
- python tips:小整数对象池与字符串intern
本文为is同一性运算符的详细解释.is用于判断两个对象是否为同一个对象,具体来说是两个对象在内存中的位置是否相同. python为了提高效率,节省内存,在实现上大量使用了缓冲池技术和字符串intern ...
随机推荐
- ou have not concluded your merge (MERGE_HEAD exists)
今天获取git线上仓库代码报了这个错误: zhangzhi@moke:~/code/ktsg-api$ git pull You have not concluded your merge (MERG ...
- Index downloads are disabled, search results may be incomplete.
20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送) 国内私募机构九鼎控股打造,九鼎投资是在全国股 ...
- 编写第一个Shell脚本
Linux中有好多中不同的shell,bash是linux默认的shell,免费且容易使用. su切换为root权限 1.创建shell脚本 touch hello.sh 2.编辑: vi hello ...
- 怎样解决MySQL数据库主从复制延迟的问题
像Facebook.开心001.人人网.优酷.豆瓣.淘宝等高流量.高并发的网站,单点数据库很难支撑得住,WEB2.0类型的网站中使用MySQL的居多,要么用MySQL自带的MySQL NDB Clus ...
- Istio在Openshift 3.11的安装
详细安装步骤及解释参考 https://docs.openshift.com/container-platform/3.11/servicemesh-install/servicemesh-insta ...
- [置顶] Eclipse显示中文 在线安装教程
准备工作: 1,一个完整的Eclipse软件: 2,加载软件地址:http://download.eclipse.org/technology/babel/update-site/R0.11.0/ke ...
- Django练习
实现功能: 登录功能 添加功能 删除功能(未实现) 代码: index.html <!DOCTYPE html> <html lang="en"> < ...
- vue项目中使用mockjs模拟接口返回数据
Mock.js 是一个模拟数据生成器,利用它,可以拦截ajax请求,直接模拟返回数据,这样前后端只要约定好数据格式,前端就不需要依赖后端的接口,可以直接使用模拟的数据了. 网上介绍mock的教程也较多 ...
- .NET-MVC站点发布注意事项
在进行MVC站点发布的过程中需要注意bin文件,使用vs2013自带的发布功能容易漏掉一些dll文件,所以在发布之后需要将程序的bin目录下的文件拷贝到发布好的iis站点下面
- 转:mac下安装homebrew
见: http://brew.sh 在命令行打开: