黑马程序员技术交流社区
标题:
NSString字符串(黑马) - OC基础学习
[打印本页]
作者:
CollinBogle
时间:
2015-9-24 00:58
标题:
NSString字符串(黑马) - OC基础学习
NSString字符串(黑马) - OC
创建字符串的4种方法
NSString
*s =
@"这个是第一种"
;
//1.特殊用法
NSString
*s1 = [
NSString
new]; s1 =
@"这是第二种"
;
NSLog
(
@"%@"
,s1);
//2.理论用法
for
(
int
i =
0
; i<
10
; i++) {
NSString
*imgName = [
NSString
stringWithFormat:
@"xxxxx%02d.jpg"
,i];
NSLog
(
@"%@"
,imgName);
//3.格式化创建字条串
}
//4.用一个已经存在的字符串创建一个样的字符串
NSString
*s2 = [[
NSString
alloc]initWithString:s1];
NSLog
(
@"s2 = %@"
,s2);
NSString字符串长度计算(length方法)
NSString
*str =
@"ican"
;
NSUInteger
len = [str length];
NSLog
(
@"str length:%ld"
,len);
//一定是%ld,打印4
NSString字符串:取出对应位置的字符
unichar
ch = [str characterAtIndex:
0
]
//取出字符串str下标为0的对应字符,返回unichar类型值
NSString字符串:比较字符串大小
无条件
//compare 方法返回结果有3种:NSOrderedAscending(升序「-1」),NSOrderedSame「0」,NSOrderedDescending(降序「1」)
NSString
*str1 =
@"abc"
;
NSString
*str2 =
@"bcd"
;
NSComparisonResult
result = [str1 compare:str2]; printf(
"%ld"
,result);
//打印结果为-1(升序)
有条件(可以有多个条件)
/*compare 常用的3个条件: NSCaseInsensitiveSearch:不区分大小写字符 NSLiteralSearch:进行完全比较,区分大小写(默认) NSNumericSearch:比较字符串的字符个数,而不是字符值 */
NSString
*str1 =
@"abc"
;
NSString
*str2 =
@"Abc"
;
//可以添加多个比较条件
NSComparisonResult
result = [str1 compare:str2 options:
NSCaseInsensitiveSearch
|
NSNumericSearch
]; printf(
"%ld"
,result);
//打印结果为0
NSString字符串:判断字符串是否相等
[str1 isEqualToString:str2]
//返回BOOL值
NSString字符串前后缀检查
前缀
NSString *url = @
"https://ios,itcast.cn"
;
//检测一个字符串的前缀是否是http://或者https://开头
//[str hasPrefix:@"要检测的内容"];
if
([url hasPrefix:@
"http://"
]||[url hasPrefix:@
"https://"
]) {
printf
(
"这是一个网址"
); }
else
{
printf
(
"这不是一个网址"
); }
后缀
NSString *imgName = @
"xxxxx.jpg"
;
//检测一个字符串的后缀是否是.jpg
//[str hasSuffix:@"要检测的内容"];
if
([url hasSuffix:@
".jpg"
]) {
printf
(
"这是一个jpg图片"
); }
else
{
printf
(
"这不是一个jpg图片"
); }
NSString字符串的查找
查找某个字符串在另外一个字符串中首次出现的位置
NSString
*str1=
@"slkioslkgilkdiosflgkhldsiosfndslfdsn"
;
NSString
*str2=
@"ios"
;
//查找2在1中首次出现的位置
//range 结构体变量 NSRange 结构体别名
//如果查找不到location返回NSNotFound,length返回0
NSRange
range = [str1 rangeOfString:str2];
NSLog
(
@"%lu,%lu"
,range
.location
,range
.length
);
把结构体转换成NSString类型
NSLog
(
@"%@"
,
NSStringFromRange
(r4));
//r4为结构体变量
字符串的截取
-(
NSString
*)substringFromIndex:(
NSUInteger
)from; 从**指定位置**from开始(包括指定位置的字符)到尾部 -(
NSString
*)substringToIndex:(
NSUInteger
)to; 从字符串的开头一直截取到**指定的位置**to,但不包括该位置的字符 -(
NSString
*)substringWithRange:(
NSRange
)range; 按照所给出的
NSRange
从字符串中截取字符串 如:[str substringWithRange:
NSMakeRange
(
4
,
10
)];
//不清楚就看NSRange的概念和使用
NSString字符串的替换
-(
NSString
*)stringByReplacingOccurrencesOfString:(
NSString
*)target withString:(
NSString
*) replacement
//用replacement替换target,返回替换后的字符串
NSString和其他类型的转换
NSString
*str =
@"1"
;
int
a =
19
;
//把字符串类型转换成其他类型
int
b = [str intValue];
//intValue,floatValue,doubleValue
sum = a+b;
NSString去除首尾空格
[str stringByTrimmingCharactersInSet:[
NSCharacterSet
whitespaceCharacterSet]];
//返回去除后的字符串
//其他参数:
屏幕快照 2015-09-04 22.13.54.png
OC字符串和C字符串的互相转换
char
*s =
"zhangsanfeng"
; printf(
"%s\n"
,s);
//用C语言创建一个OC的字符串
NSString
*str = [
NSString
stringWithUTF8String:s];
//相反的用[str2 UTF8String]
NSLog
(
@"str = %@"
,str);
作者:
CollinBogle
时间:
2015-9-24 01:00
在这边总是感觉很乱。
这个排版会清楚一点,http://www.jianshu.com/p/b6ca2f673ff9
作者:
hejianchun
时间:
2015-9-24 09:22
内容很不错,就是需要排版一下,感谢分享
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2