iOS开发-OC语言 (三)字符串

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; text-align: center; font: 24.0px "PingFang SC" }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 24.0px Helvetica; min-height: 29.0px }
p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 24.0px "PingFang SC" }
p.p4 { margin: 0.0px 0.0px 0.0px 0.0px; font: 24.0px Helvetica }
p.p5 { margin: 0.0px 0.0px 0.0px 0.0px; font: 24.0px "PingFang SC"; color: #323333 }
p.p6 { margin: 0.0px 0.0px 0.0px 0.0px; font: 24.0px Helvetica; color: #323333 }
p.p7 { margin: 0.0px 0.0px 0.0px 0.0px; font: 24.0px Helvetica; color: #323333; min-height: 29.0px }
p.p8 { margin: 0.0px 0.0px 0.0px 0.0px; font: 24.0px Arial; color: #323333 }
p.p9 { margin: 0.0px 0.0px 0.0px 0.0px; font: 24.0px "Times New Roman"; color: #323333; min-height: 27.0px }
p.p10 { margin: 0.0px 0.0px 0.0px 0.0px; font: 24.0px "Times New Roman"; min-height: 27.0px }
p.p11 { margin: 0.0px 0.0px 0.0px 0.0px; font: 24.0px "Heiti SC Light" }
p.p12 { margin: 0.0px 0.0px 0.0px 0.0px; font: 24.0px Helvetica; color: #1d9421 }
p.p13 { margin: 0.0px 0.0px 0.0px 0.0px; font: 20.0px Menlo; color: #11053b }
p.p14 { margin: 0.0px 0.0px 0.0px 0.0px; font: 20.0px Menlo }
p.p15 { margin: 0.0px 0.0px 0.0px 0.0px; font: 20.0px Menlo; color: #1d9421 }
p.p16 { margin: 0.0px 0.0px 0.0px 0.0px; font: 20.0px "Times New Roman"; min-height: 23.0px }
p.p17 { margin: 0.0px 0.0px 0.0px 0.0px; font: 20.0px Menlo; color: #e32400 }
p.p18 { margin: 0.0px 0.0px 0.0px 0.0px; font: 20.0px Menlo; color: #e32400; min-height: 24.0px }
p.p19 { margin: 0.0px 0.0px 0.0px 0.0px; font: 20.0px "Heiti SC Light" }
p.p20 { margin: 0.0px 0.0px 0.0px 0.0px; font: 20.0px Menlo; color: #3d1d81 }
p.p21 { margin: 0.0px 0.0px 0.0px 0.0px; font: 20.0px "Heiti SC Light"; color: #1d9421 }
p.p22 { margin: 0.0px 0.0px 0.0px 0.0px; font: 20.0px Menlo; min-height: 24.0px }
p.p23 { margin: 0.0px 0.0px 0.0px 0.0px; font: 20.0px Menlo; color: #b51a00 }
p.p24 { margin: 0.0px 0.0px 0.0px 0.0px; font: 20.0px Menlo; color: #c91b13 }
span.s1 { }
span.s2 { font: 24.0px "PingFang SC" }
span.s3 { font: 24.0px Helvetica }
span.s4 { font: 24.0px Helvetica; color: #000000 }
span.s5 { font: 24.0px "Heiti SC Light" }
span.s6 { font: 24.0px Arial; color: #136ec2 }
span.s7 { color: #136ec2 }
span.s8 { font: 24.0px "Heiti SC Light"; color: #136ec2 }
span.s9 { font: 24.0px "Heiti SC Light" }
span.s10 { font: 24.0px "Times New Roman" }
span.s11 { font: 24.0px Helvetica }
span.s12 { font: 24.0px "Times New Roman"; color: #000000 }
span.s13 { color: #000000 }
span.s14 { font: 20.0px Menlo }
span.s15 { font: 20.0px "Heiti SC Light" }
span.s16 { color: #3d1d81 }
span.s17 { color: #11053b }
span.s18 { color: #6122ae }
span.s19 { font: 24.0px Helvetica; color: #000000 }
span.s20 { font: 20.0px Menlo; color: #1d9421 }
span.s21 { color: #c32275 }
span.s22 { font: 20.0px "Heiti SC Light"; color: #c91b13 }
span.s23 { color: #0435ff }
span.s24 { color: #703daa }
span.s25 { color: #c91b13 }
span.s26 { font: 20.0px "Heiti SC Light"; color: #1d9421 }
span.s27 { color: #1d9421 }
span.s28 { font: 24.0px "Heiti SC Light"; color: #000000 }
span.s29 { font: 20.0px "Heiti SC Light"; color: #0435ff }
span.s30 { font: 20.0px Menlo; color: #000000 }
span.s31 { font: 20.0px "Times New Roman" }
span.s32 { font: 20.0px "Times New Roman"; color: #000000 }
span.s33 { font: 20.0px "Apple Color Emoji"; color: #c91b13 }
span.s34 { font: 20.0px "Apple Color Emoji" }
span.Apple-tab-span { white-space: pre }

字符串

知识点

1.NSString

2.NSMutableString

3.了解NSMutableString与NSString的继承关系

了解:

1.什么是字符编码

是一套法则,使用该法则能够对自然语言的字符的一个集合(如字母表或音节表),与其他东西的一个集合(如号码或电脉      冲)进行配对。即在符号集合与数字系统之间建立对应关系。

字符编码百科:http://baike.baidu.com/link?url=bFKEidJQmo3JEljFQRbtkEyToRe1_SrqbCgNsv4jKcYGFyTBixJjhTVYegSiozPVpvrR99cQhUoQq_01BnF1L_

2.UTF8编码:UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,又称万国码。由Ken Thompson于1992年创建。现在已经标准化为RFC 3629。UTF-8用1到6个字节编码UNICODE字符。用在网页上可以同一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。

========= 不可变字符串(NSString) =========

1.为什么需要NSString对象

答:在OC中创建字符串时,一般不使用C的方法,

因为C将字符串作为字符数组,所以在操作时会有很多不方便的地方,

在Cocoa中NSString集成的一些方法,可以很方便的操作字符串。

2.OC中定义字符串和C语言定义字符串

//C字符串常量

char *cString = "c字符串";

printf("c string is %s\n",cString);

//OC字符串常量

NSString *ocString = @"oc字符串";

NSLog(@"oc string is %@",ocString);

3.NSLog如何格式化NSString对象

%@

4.字符串创建

(1)定义一个空的不可变字符串(一般用不到):

NSString *string = [[NSString alloc] init];

(2)定义一个有值的字符串(一般用不到)

[NSString stringWithString:@"test"];

[[NSString alloc] initWithString:<#(NSString *)#>];

5.如何格式化一个字符串

[NSString stringWithFormat:<#(NSString *), ...#>];

6.C语言字符串和NSString的转换

<1>c字符串转化为NSString

[NSString stringWithUTF8String:c];

<2>NSString转化为C

[string UTF8String];

7.如何从文本文件中读取字符串

//第1种:

/*

stringWithContentsOfFile:要读取文件路径

encoding:编码方式

error:错误信息,可以传nil

*/

//类方法

s = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];

//对象方法

[[NSString alloc] initWithContentsOfFile:<#(NSString *)#> encoding:<#(NSStringEncoding)#> error:<#(NSError *__autoreleasing *)#>];

第2种:

//把路径的字符串转化为NSURL对象

NSURL *filePath = [NSURL fileURLWithPath:path];

string = [NSString stringWithContentsOfURL:filePath encoding:NSUTF8StringEncoding error:nil];

8.如何把一个字符串写入到文件中

/*

writeToFile:要写入的文件路径(file path)

atomically:YES表示原子性,NO表示非原子性。一般是YES(比较安全),当为YES,系统在写入的过程中会创建一个临时文件,系统先把数据写入到临时文件里面,如果写入成功,最后赋值到目标文件里面。

encoding:编码,一般是UTF8(NSUTF8StringEncoding)

*/

NSError *error;

//文件不存在会自动创建

[string writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:&error];

9.如何从网络上读取字符串

NSURL *url = [NSURL URLWithString:远程地址];

string = [NSString stringWithContentsOfURL: url encoding:NSUTF8StringEncoding error:nil];

10.求字符串长度(一个中文长度为1)

[string length]

11.通过索引获取相应的字符

[string characterAtIndex:0]

12.字符串判断

1)判断两个字符串内容是否相同

[s1 isEqualToString:s2]

2)判断两个字符串是否是同一个对象

if (s1 == s2)

{

NSLog(@"s1和s2是同一个对象");

}

else

{

NSLog(@"s1和s2不是同一个对象");

}

13.字符串比较

1)两个字符串比较(区分大小写)

NSComparisonResult result = [s1 compare:s2];

if (result == NSOrderedAscending)

{

NSLog(@"s2 > s1");

}

else if (result == NSOrderedSame)

{

NSLog(@"s1 = s2");

}

else

{

NSLog(@"s2 < s1");

}

2)比较两个字符串(忽略大小写)

//忽略大小写

result = [s1 caseInsensitiveCompare:s2];

14.转化为基本类型(int,float,bool,double,integer)

//转化为int

[num2 intValue];

//转化为NSInteger

[num2 integerValue];

//转化为Double

[num2 doubleValue];

//float

[num2 floatValue];

//long long

[num2 longLongValue];

//bool

[num2 boolValue];

15.把一个字符串转化为大写,小写,各个单词的首字母大写

//转化为大写

NSString *upperString = [s1 uppercaseString];

NSLog(@"大写:%@",upperString);

//转化为小写

NSString *lowString = [s1  lowercaseString];

NSLog(@"小写:%@",lowString);

//各个单词的首字母大写

NSString *ss = [s1 capitalizedString];

NSLog(@"各个单词的首字母大写:%@",ss);

16. 替换字符串

[S stringByReplacingOccurrencesOfString:A  withString:B];//把S中所有的A换为B

[string stringByReplacingOccurrencesOfString:@"l3l" withString:@"s"];

17.分割一个字符串,转化为数组

[string componentsSeparatedByString:@“分隔符”];

18.字符串截取

//从指定索引截取到最后

NSString *subString = [string substringFromIndex:起始索引];

//从开始截取到指定的索引之前

subString = [string substringToIndex:终止索引(不包括当前索引)]’

//截取字符串的一部分

//范围

NSRange range = NSMakeRange(2, 3);

[string substringWithRange:range];

19.字符串拼接

(1)拼接一个字符串

[str1 stringByAppendingString:str2]

(2)拼接一个格式化字符串

[str1 stringByAppendingFormat:@" %@",str2]

20.查找字符串

//[string rangeOfString:要查找的字符串]

//只会查找第一次出现的字符串,从前向后查找

range = [string rangeOfString:@"test"];

NSLog(@"%ld - %ld",range.location,range.length);

/*

NSCaseInsensitiveSearch 不区分大小写

NSLiteralSearch 区分大小写

NSBackwardsSearch 从后向前查找

*/

range = [string rangeOfString:@"test" options:NSBackwardsSearch];

NSLog(@"%ld - %ld",range.location,range.length);

21.判断一个字符串是否以某个前缀或者后缀

//判断是否以某个字符串前缀开头

[string hasPrefix:@"he22"]

//判断是否以某个字符串前缀结尾

[string hasSuffix:@"ds"];

22.路径

1)路径后面追加一个文件名或者路径(网络会用到)

[path stringByAppendingPathComponent:文件名或者文件夹名字];

2)把指定的字符串数组拼接成路径

NSMutableArray *array = [NSMutableArray arrayWithObjects:@"Users",@"qianfeng",@"desktop",@"新建文件夹", nil];

newPath = [NSString pathWithComponents:array];

3)将路径分割成字符串数组

NSArray *components = [path pathComponents];

4)判断是否是绝对路径

BOOL isAbsolutePath = [path isAbsolutePath];

5)获取最后一个目录或者文件名

//取路径的最后一部分

NSString *s = [path lastPathComponent];

6)删除路径最后一部分

[path stringByDeletingLastPathComponent];

7)获取文件后缀

[path pathExtension]

8)删除后缀

[path stringByDeletingPathExtension];

9)添加后缀

[path stringByAppendingPathExtension:@"png"];

.

========= 可变字符串(NSMutableString) =========

1.初始化可变字符串(必须初始化)

NSMutableString *string = [[NSMutableString alloc] init];

string = [NSMutableString string];

2.初始化带有字符串的可变字符串

[NSMutableString stringWithString:@"sss"];

3.设置字符串

//设置字符串(会覆盖原来字符串内容)

[string setString:@"测试"];

4.在指定的位置插入字符串

[string insertString:@“要插入的字符串” atIndex:插入字符串的下标];

5.追加一个部分字符串(在最后追加)

[string appendString:@"??"];

//追加格式化字符串

[string appendFormat:@"dog=%@ cat=%@",@"??",@"??"];

6.删除字符串一部分

//要删除的范围

NSRange deleteRange = NSMakeRange(3, 2);

//删除指定范围的字符

[string deleteCharactersInRange:deleteRange];

时间: 2024-11-05 13:50:31

iOS开发-OC语言 (三)字符串的相关文章

iOS开发-OC语言 (一)oc数据类型

分享一套以前学习iOS开发时学习整理的资料,后面整套持续更新: oc数据类型 数据类型:基本数据类型.指针数据类型 基本数据类型:数值型.字符型(char).布尔型.空类型(void) 指针数据类型:类(class).id 数值型:整数类型int.浮点型float.double c和oc的基本数据类型 int:声明整型变量 double:声明双精度变量 float:声明浮点型变量 char:声明字符型变量 id:通用的指针类型 enum:声明枚举类型 long:声明长整型变量或函数 short:

iOS开发-OC语言 (六)点语法和@property

点语法和@property 知识点 1.setter/getter函数 2.点语法 [email protected]语法和属性 ======================================== 一.setter和getter函数 1.setter和getter函数的作用 setter  方法:   修改对象的字段/实例变量 getter 方法:   读取对象的字段/实例变量 setter 方法: 可以带有多个参数,可以同时给多个变量赋值 getter方法: 不带参数,只能返回一

iOS开发OC基础:Xcode中常见英文总结,OC常见英文错误

在开发的过程中难免会遇到很多的错误,可是当看到系统给出的英文时,又不知道是什么意思.所以这篇文章总结了Xcode中常见的一些英文单词及词组,可以帮助初学的人快速了解给出的提示.多练习,就肯定能基本掌握. expression:表达式assignable:赋值variable:变量redefinition:重复定义type:类型conflicting:冲突项invalid:无效的conversion:转换specifier:说明符indent:缩进operands:运算对象.操作数binary:二

李洪强iOS开发Swift篇—03_字符串和数据类型

李洪强iOS开发Swift篇—03_字符串和数据类型 一.字符串 字符串是String类型的数据,用双引号""包住文字内容  let website = "http://www.wendingding.com" 1.字符串的常见操作 (1)用加号 + 做字符串拼接 let scheme = "http://" let path = “www.wendingding.com” let website = scheme + path // websi

Android &amp;Swift iOS开发:语言与框架对比

转载自:http://www.infoq.com/cn/articles/from-android-to-swift-ios?utm_campaign=rightbar_v2&utm_source=infoq&utm_medium=articles_link&utm_content=link_text 从Android到Swift iOS开发:语言与框架对比 我从2009年开始做Android开发,开始接触Swift是在2014年底,当时组里曾经做过一个Demo App,感觉技术还

iOS开发OC基础:OC基础概念总结,OC面向对象的思想

一.什么是OOP: OOP(Object Oriented Programming):面向对象编程 二.面向对象和面向过程的区别: 面向过程编程:分析解决问题的步骤,实现函数,依次使用面向对象编程:分解问题组成的对象,协调对象间的联系和通信,解决问题. 面向过程是以事件为中心,关心的是完成这个事件的详细步骤:面向对象是以事物为中心,关心的是事物应该具备的功能,而完成一个事件只是事物所有功能里面的一个小功能(以过程为中心,以对象为中心) 三.类和对象 对象定义了解决问题的步骤中的行为,不刻意完成一

iOS开发OC基础:OC属性的一些概念和基本使用

一.属性简介 //属性是OC2.0之后新出的一种语法,能让我们快速的生成setter以及getter方法,大大简化代码 二.如何定义一个属性 //@property 属性关键字,用来定义属性 //NSString * 属性的类型 //name 属性的名字. //@property 只是生成的setter以及getter方法的声明.@property NSString *name; 三.属性的使用注意事项//如果在.m文件中我们自己实现了setter以及getter方法,则编译器就不会再帮我们生成

Android与Swift iOS开发:语言与框架对比

Swift是现在Apple主推的语言,2014年新推出的语言,比Scala等“新”语言还要年轻10岁.2015年秋已经开源.目前在linux上可用,最近已经支持Android NDK:在树莓派上有SwiftyGPIO库,可以通过GPIO控制一些硬件. Object C is old and ugly,oc是1983年苹果推出的,过于陈旧和臃肿. Swift语法类似Scala,Javascript ES6, Java,OC, C++, Python 这是tiobe发布的编程语言排行 Swift支持

从Java/Android到Swift iOS开发:语言与框架对比

本文是我在『移动前线』微信群2016年4月28日的分享总结整理. 我从2009年开始做Android开发,开始接触Swift是在2014年底,当时组里曾经做过一个Demo App,感觉技术还不够成熟没有正式发布.2016年初我们正式使用swift开发上线了销售助手App产品,积累了比较丰富的swift项目实战经验,开源框架都是用的swift版本,大量使用了面向协议和函数式编程.iOS App开发人员基本都是以前安卓版本的开发人员,同时维护安卓和iOS 2个版本,效率很高. 今天分享的主题是Jav