Sian 发表于 2013-12-19 21:38:29

第八讲: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;
}

Sian 发表于 2013-12-22 21:15:52

值得注意的是:比较两个字符串的大小"compare"方法不是我们传统意义上的数值加减,数字与字符同样可以进行比较。我测试了一下,123<456这很正常,但1234<456这个要做何解释?456=456,4567>456,4552<456等等,一起研究一下吧。

Sian 发表于 2014-1-8 19:42:09

//
//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;
}

Sian 发表于 2014-1-8 19:43:02

以下结果运行如下:
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]
查看完整版本: 第八讲:Objective-C基本数据结构之NSString