您的位置:首页 > 移动开发 > Objective-C

Objective-C NSString字符串(三)

2013-03-03 15:03 260 查看
Objective-C 中核心处理字符串的类是 NSString 与 NSMutableString ,这两个类最大的区别就是NSString 创建赋值以后该字符串的内容与长度不能在动态的更改,除非重新给这个字符串赋值。而NSMutableString 创建赋值以后可以动态在该字符串上更改内容与长度。

1.创建经典的NSString字符串

NSString 与 char* 最大的区别就是 NSString是一个objective对象,而char* 是一个字节数组。@+ ” 字符串 ” 这个符号为objective-c NSString 字符串常量的标准用法,char* 创建的时候 无需添加@

01
-
(
void
)viewDidLoad
02
{
03
[super
viewDidLoad];
04
05
//经典的字符串赋值
06
NSString
*str0 = @
"我是雨松MOMO"
;
07
08
//字符串格式化合并分别包括
09
//NSString*类型
int类型 char*类型
10
NSString
*str1 = [NSString stringWithFormat:@
"我的名字:%@
我的年龄:%d 我的邮箱:%s"
,@
"雨松MOMO"
,
25,
"xuanyusong@gmail.com"
];
11
12
//字符串赋值
参数中只可以写一个字符串 和第一种很像
13
NSString
*str2 = [NSString stringWithString:@
"我是字符串"
];
14
15
//字符串转换为utf-8格式
参数为char*类型
16
NSString
*str3 = [NSString stringWithUTF8String:
"字符串转换utf-8格式"
];
17
18
//字符串合并
19
int
i
= 100;
20
char
*c
=
"xuanyusong"
;
21
NSString
*temp = @
"我是临时字符串"
;
22
23
//在字符串temp的基础继续添加
int i 与 char* c 组成一个新的字符串
24
NSString
*str4 = [temp stringByAppendingFormat:@
"整型:
%d 字符型 :%s"
,i,c];
25
26
//在字符串temp的基础继续添加temp
并组成一个新的字符串
27
NSString
*str5 = [temp stringByAppendingString:temp];
28
29
//字符串输出
30
NSLog(@
"str0
= %@"
,
str0);
31
NSLog(@
"str1
= %@"
,
str1);
32
NSLog(@
"str2
= %@"
,
str2);
33
NSLog(@
"str3
= %@"
,
str3);
34
NSLog(@
"str4
= %@"
,
str4);
35
NSLog(@
"str5
= %@"
,
str5);
36
37
}



2.字符串的遍历

每一个字符串其实是由若干个char字符组成,字符串的遍历实际上就是将字符串中的每一个字符提取出来。

01
-
(
void
)viewDidLoad
02
{
03
[super
viewDidLoad];
04
05
//经典的字符串赋值
06
NSString
*str = @
"YUSONGMOMO"
;
07
08
//字符串的长度
09
int
count
= [str length];
10
11
NSLog(@
"字符串的长度是%d"
,count);
12
13
//遍历字符串中的每一个字符
14
for
(
int
i
=0; i < count; i++)
15
{
16
char
c
= [str characterAtIndex:i];
17
NSLog(@
"字符串第
%d 位为 %c"
,i,c);
18
}
19
20
}



3.字符串的比较

isEqualToString 比较字符串是否完全相等,大小写不一样也无法完全匹配。
hasPrefixe 匹配字符串头
haSuffix 匹配字符串的尾巴

01
-
(
void
)viewDidLoad
02
{
03
[super
viewDidLoad];
04
05
NSString
*str0 = @
"雨松MOMO"
;
06
NSString
*str1 = @
"雨松MOMO"
;
07
08
//字符串完全相等比较
09
if
([str0
isEqualToString:str1])
10
{
11
NSLog(@
"字符串完全相等"
);
12
}
13
14
//字符串以开头比较
15
if
([str0
hasPrefix:@
"雨松"
])
16
{
17
NSLog(@
"字符串str0以雨松开头"
);
18
}
19
20
//字符串以结尾比较
21
if
([str1
hasSuffix:@
"MOMO"
])
22
{
23
NSLog(@
"str1字符串以MOMO结尾"
);
24
}
25
}



4.字符串的截取与大小写改变

01
-
(
void
)viewDidLoad
02
{
03
[super
viewDidLoad];
04
05
NSString
*str0 = @
"中文my
name is xuanyusong"
;
06
07
//截取字符串起始点到index为4之间的内容
08
NSString
* to = [str0 substringToIndex:4];
09
10
NSLog(@
"to
= %@"
,to);
11
12
//截取字符index为2
到结尾之间的内容
13
NSString
* from = [str0 substringFromIndex:2];
14
15
NSLog(@
"from
= %@"
,from);
16
17
//设置截取字符串的范围
18
//从第二位至第十位
19
NSRange
rang = NSMakeRange(2, 10);
20
NSString
* strRang = [str0 substringWithRange:rang];
21
NSLog(@
"rang
= %@"
,strRang);
22
23
//设置字符串首字母大写
24
NSLog(@
"str0首字母大写:%@"
,[str0
capitalizedString]);
25
//设置字符串全部内容为大写
26
NSLog(@
"str0大写:%@"
,[str0
uppercaseString]);
27
//设置字符全部内容为小写
28
NSLog(@
"str0小写:%@"
,[str0
lowercaseString]);
29
30
}




5.搜索字符串与替换字符串

01
-
(
void
)viewDidLoad
02
{
03
[super
viewDidLoad];
04
05
NSString
*str0 = @
"中文my
name is xuanyusong"
;
06
NSString
*temp = @
"is"
;
07
NSRange
rang = [str0 rangeOfString:temp];
08
09
NSLog(@
"搜索的字符串在str0中起始点的index
为 %d"
,
rang.location);
10
NSLog(@
"搜索的字符串在str0中结束点的index
为 %d"
,
rang.location + rang.length);
11
12
//将搜索中的字符串替换成为一个新的字符串
13
NSString
*str = [str0 stringByReplacingCharactersInRange:rang withString:@
"哇咔咔卡卡咔"
];
14
NSLog(@
"替换后字符串为%@"
,
str);
15
16
//将字符串中"
" 全部替换成 *
17
str
= [str0 stringByReplacingOccurrencesOfString :@
"
"
withString:@
"@"
];
18
NSLog(@
"替换后字符串为%@"
,
str);
19
20
}
拓展:使用下面这个方法整体替换字符串还可以设置替换的区域。

stringByReplacingOccurrencesOfString:(NSString *)withString:(NSString *) options:(NSStringCompareOptions) range:(NSRange)



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: