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 ...
随机推荐
- 一张图彻底了解Unity脚本的生命周期
以前没好好看Unity的脚本手册,原来写的是这么的全...尤其起yield www 协同 这部分看了这张图彻底的懂了..
- mysql中函数greatest 与MAX区别
greatest (a,b,c,d,d)max(a) 这样就能看明白了,greatest 求的是某几列的最大值,横向求最大(一行记录)max(a) 一看就明白了,是给纵向求最大(多行记录).
- selinux改变状态不需要重启的方法
1.selinux的配置路径/var/selinux/config,配置内容为 2.配置文件修改完,需要重启系统,才能生效 3.使用sestatus -v 查看当前selinux功能情况: 4.使用s ...
- Linux下C获取所有可用网卡信息
在Linux下开发网络程序时,经常会遇到需要取本地网络接口名.IP.广播地址.子网掩码或者MAC地址等信息的需求,最常见的办法是配合宏SIOCGIFHWADDR.SIOCGIFADDR.SIOCGIF ...
- 深入理解java虚拟机笔记之一
Java的技术体系主要有支撑java程序运行的虚拟机,提供各开发领域接口支持Java API,java编程语言及许多第三方java框架( 如Spring,Structs等)构成. 可以把Java程序设 ...
- 【C/C++】Linux C,关于刷新printf输出问题
直接描述吧:int i = 0;while(1){printf("now i = %d\r", i);fflush(stdout);i++;sleep(1);}我想在输出中不仅仅是 ...
- TensorFlow 入门 上(自用)
下文会出现的一些知识点:TensorFlow的计算模型.数据模型.运行模型,TensorFlow的工作原理. 两个重要概念——Tensor和Flow: Tensor是张量,在TensorFlow中可以 ...
- Python网络爬虫 - 2. Beautiful Soup小试牛刀
目标: 我们解析百度首页的logo bs_baidu_logo.py from urllib.request import urlopen from bs4 import BeautifulSoup ...
- iOS socket Stream 服务器端 及 客户端 演示
iOS socket Stream 测试环境,mac osx 10.8 一:建立服务器端 由于mac osx10.8 已经集成 python2和 Twisted,我们可以直接利用此,构建一个简单的so ...
- Unity3D 多平台_预编译相关宏定义
http://www.cnblogs.com/zhaoqingqing/p/3510332.html API地址:http://docs.unity3d.com/Documentation/Manua ...