第八讲:Objective-C基本数据结构之NSString
本帖最后由 Sian 于 2013-12-20 09:22 编辑main.m
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]){
@autoreleasepool {
char * s = "Hello C!";//C语言字符串
NSString * str = @"Hello NSString!"; //OC字符串
NSString * srt1 = [ initWithString:str]; //字符串传参
NSString * str2 = [ initWithString:@"Hello NSString2!"];
NSString * str3 = [ initWithUTF8String:"Hello C to OC!"];//用C的字符串创建OC的字符串对象
NSString * str4 = [ initWithFormat:@"Hello %d%c!",2,'B'];//使用格式符,拼接字符串
NSString * str5 = ;//对应临时字符串
NSString * str6 = ;//对应临时字符串
NSString * str7 = ;//对应临时字符串
NSLog(@"%s",s);
NSLog(@"%@",str);
NSLog(@"%@",srt1);
NSLog(@"%@",str2);
NSLog(@"%@",str3);
NSLog(@"%@",str4);
NSLog(@"%@",str5);
NSLog(@"%@",str6);
NSLog(@"%@",str7);
;
;
;
//*****************************************************
NSString * str8 = @"Hello NSString8!";
BOOL ret = ;//比较两个字符串是否相等
NSLog(@"%d",ret);
//*****************************************************
NSString * str9 = @"123";
NSString * str10 = @"456";
NSComparisonResult ret1 = ;//比较两个字符串大小
if(ret1 == NSOrderedAscending){
NSLog(@"str9 < str10!");
}else if(ret1 == NSOrderedDescending){
NSLog(@"str9 > str10!");
}else if(ret1 == NSOrderedSame){
NSLog(@"str9 = str10");
} //str9 < str10!
//*****************************************************
NSString * str11 = @"I am a so bad man.";
NSString * subStr = @"so";
NSRange range = ;
NSLog(@"location:%lulength:%lu",range.location,range.length);//location:7length:2
//*****************************************************
NSString * str12 = @"0123456789";
NSString * str13 = ;//从str中提取从头至第6个字符串(从0开始计算则不包含第6个的开区间),生成新的字符串
NSString * str14 = ; //从第6个字符开始提取,直至字符串尾,返回字符串地址
NSString * str15 = ;
//NSString * str16 = ;
NSLog(@"%@",str12);
NSLog(@"%@",str13);
NSLog(@"%@",str14);
NSLog(@"%@",str15);
//NSLog(@"%@",str16);
}
return 0;
}
值得注意的是:比较两个字符串的大小"compare"方法不是我们传统意义上的数值加减,数字与字符同样可以进行比较。我测试了一下,123<456这很正常,但1234<456这个要做何解释?456=456,4567>456,4552<456等等,一起研究一下吧。 //
//main.m
//NSString
//
//Created by yusian on 14-1-6.
//Copyright (c) 2014年 yusian. All rights reserved.
//
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
@autoreleasepool{
NSString * str = @"Hello str!";
NSLog(@"%@",str);
NSString * str1 = [ initWithString:@"Hello OC!"];
NSLog(@"%@",str1);
;
NSString * str2 = [ initWithFormat:@"Hello %d%c!",2,'B'];
NSLog(@"%@",str2);
;
NSString * str3 = [ initWithString:str];
NSLog(@"%@",str3);
;
NSString * str4 = ;
NSLog(@"%@",str4);
NSString * str5 = ;
NSLog(@"%@",str5);
NSString * str6 = ;
NSLog(@"%@",str6);
//****************************************************
NSString * str7 = @"Hello Temp str";
BOOL ret = ;
NSLog(@"%d",ret);
//****************************************************
NSString * str8 = @"123";
NSString * str9 = @"234";
NSComparisonResult ret1 = ;
if (ret1 == NSOrderedSame)
NSLog(@"str8 = str9");
else if (ret1 == NSOrderedAscending)
NSLog(@"str8 < str9");
else if (ret1 == NSOrderedDescending)
NSLog(@"str8 > str9");
//****************************************************
NSString * str10 = @"This is a NSString test!";
NSString * str11 = @"st";
NSRange range = ;
NSLog(@"%ld,%ld",range.length,range.location);
//****************************************************
NSString * str12 = @"abcdefghijklmnopqrstuvwxyz";
NSString * str13 = ;
NSLog(@"%@",str13);
NSString * str14 = ;
NSLog(@"%@",str14);
NSString * str15 = ;
NSLog(@"%@",str15);
}
return 0;
}
以下结果运行如下:
2014-01-08 19:41:30.861 NSString Hello str!
2014-01-08 19:41:30.863 NSString Hello OC!
2014-01-08 19:41:30.863 NSString Hello 2B!
2014-01-08 19:41:30.863 NSString Hello str!
2014-01-08 19:41:30.863 NSString Hello Temp 2B
2014-01-08 19:41:30.864 NSString Hello str!
2014-01-08 19:41:30.864 NSString Hello Temp str
2014-01-08 19:41:30.864 NSString 1
2014-01-08 19:41:30.865 NSString str8 < str9
2014-01-08 19:41:30.865 NSString 2,21
2014-01-08 19:41:30.865 NSString xyz
2014-01-08 19:41:30.866 NSString abcdefg
2014-01-08 19:41:30.866 NSString hijklmn
Program ended with exit code: 0
页:
[1]