年年有"余"

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8420|回复: 3

第八讲:Objective-C基本数据结构之NSString

[复制链接]
  • TA的每日心情

    2024-10-15 10:05
  • 签到天数: 372 天

    [LV.9]以坛为家II

    发表于 2013-12-19 21:38:29 | 显示全部楼层 |阅读模式
    本帖最后由 Sian 于 2013-12-20 09:22 编辑

    main.m
    1. #import <Foundation/Foundation.h>
    2. int main(int argc, const char * argv[]){
    3.     @autoreleasepool {
    4.         char * s = "Hello C!";  //C语言字符串
    5.         NSString * str = @"Hello NSString!";    //OC字符串
    6.         NSString * srt1 = [[NSString alloc] initWithString:str];    //字符串传参
    7.         NSString * str2 = [[NSString alloc] initWithString:@"Hello NSString2!"];
    8.         NSString * str3 = [[NSString alloc] initWithUTF8String:"Hello C to OC!"];//用C的字符串创建OC的字符串对象
    9.         NSString * str4 = [[NSString alloc] initWithFormat:@"Hello %d%c!",2,'B'];//使用格式符,拼接字符串
    10.         NSString * str5 = [NSString stringWithUTF8String:"Hello C to OC! -Temp"];//对应临时字符串
    11.         NSString * str6 = [NSString stringWithFormat:@"Helllo %d%c! -Temp",2,'B'];//对应临时字符串
    12.         NSString * str7 = [NSString stringWithString:str];//对应临时字符串
    13.         NSLog(@"%s",s);
    14.         NSLog(@"%@",str);
    15.         NSLog(@"%@",srt1);
    16.         NSLog(@"%@",str2);
    17.         NSLog(@"%@",str3);
    18.         NSLog(@"%@",str4);
    19.         NSLog(@"%@",str5);
    20.         NSLog(@"%@",str6);
    21.         NSLog(@"%@",str7);
    22.         [str2 release];
    23.         [str3 release];
    24.         [str4 release];
    25.         //*****************************************************
    26.         NSString * str8 = @"Hello NSString8!";
    27.         BOOL ret = [str isEqualToString:str8];  //比较两个字符串是否相等
    28.         NSLog(@"%d",ret);
    29.         //*****************************************************
    30.         NSString * str9 = @"123";
    31.         NSString * str10 = @"456";
    32.         NSComparisonResult ret1 = [str9 compare:str10];//比较两个字符串大小
    33.         if(ret1 == NSOrderedAscending){
    34.                 NSLog(@"str9 < str10!");
    35.         }else if(ret1 == NSOrderedDescending){            
    36.                 NSLog(@"str9 > str10!");        
    37.         }else if(ret1 == NSOrderedSame){            
    38.                 NSLog(@"str9 = str10");        
    39.         }        //str9 < str10!
    40.         //*****************************************************
    41.         NSString * str11 = @"I am a so bad man.";        
    42.         NSString * subStr = @"so";
    43.         NSRange range = [str11 rangeOfString:subStr];
    44.         NSLog(@"location:%lu  length:%lu",range.location,range.length);//location:7  length:2
    45.         //*****************************************************
    46.         NSString * str12 = @"0123456789";
    47.         NSString * str13 = [str12 substringToIndex:6];  //从str中提取从头至第6个字符串(从0开始计算则不包含第6个的开区间),生成新的字符串  
    48.         NSString * str14 = [str12 substringFromIndex:6];      //从第6个字符开始提取,直至字符串尾,返回字符串地址        
    49.         NSString * str15 = [str12 subStringWithRange:range1];
    50.         //NSString * str16 = [str12 substringWithRange:NSMakeRange(4, 4)];        
    51.         NSLog(@"%@",str12);        
    52.         NSLog(@"%@",str13);        
    53.         NSLog(@"%@",str14);        
    54.         NSLog(@"%@",str15);        
    55.         //NSLog(@"%@",str16);
    56.     }   
    57.         return 0;
    58. }
    复制代码
  • TA的每日心情

    2024-10-15 10:05
  • 签到天数: 372 天

    [LV.9]以坛为家II

     楼主| 发表于 2013-12-22 21:15:52 | 显示全部楼层
    值得注意的是:比较两个字符串的大小"compare"方法不是我们传统意义上的数值加减,数字与字符同样可以进行比较。我测试了一下,123<456这很正常,但1234<456这个要做何解释?456=456,4567>456,4552<456等等,一起研究一下吧。
  • TA的每日心情

    2024-10-15 10:05
  • 签到天数: 372 天

    [LV.9]以坛为家II

     楼主| 发表于 2014-1-8 19:42:09 | 显示全部楼层
    1. //
    2. //  main.m
    3. //  NSString
    4. //
    5. //  Created by yusian on 14-1-6.
    6. //  Copyright (c) 2014年 yusian. All rights reserved.
    7. //
    8. #import <Foundation/Foundation.h>
    9. int main(int argc, const char * argv[])
    10. {
    11.     @autoreleasepool{
    12.         
    13.         NSString * str = @"Hello str!";
    14.         
    15.         NSLog(@"%@",str);
    16.         
    17.         NSString * str1 = [[NSString alloc] initWithString:@"Hello OC!"];
    18.         
    19.         NSLog(@"%@",str1);
    20.         
    21.         [str1 release];
    22.         
    23.         NSString * str2 = [[NSString alloc] initWithFormat:@"Hello %d%c!",2,'B'];
    24.         
    25.         NSLog(@"%@",str2);
    26.         
    27.         [str2 release];
    28.         
    29.         NSString * str3 = [[NSString alloc] initWithString:str];
    30.         
    31.         NSLog(@"%@",str3);
    32.         
    33.         [str3 release];
    34.         
    35.         NSString * str4 = [NSString stringWithFormat:@"Hello Temp %d%c",2,'B'];
    36.         
    37.         NSLog(@"%@",str4);
    38.         
    39.         NSString * str5 = [NSString stringWithString:str];
    40.         
    41.         NSLog(@"%@",str5);
    42.         
    43.         NSString * str6 = [NSString stringWithUTF8String:"Hello Temp str"];
    44.         
    45.         NSLog(@"%@",str6);
    46.         
    47. //****************************************************
    48.         
    49.         NSString * str7 = @"Hello Temp str";
    50.         
    51.         BOOL ret = [str7 isEqualToString:str6];
    52.         
    53.         NSLog(@"%d",ret);
    54. //****************************************************
    55.         
    56.         NSString * str8 = @"123";
    57.         NSString * str9 = @"234";
    58.         
    59.         NSComparisonResult ret1 = [str8 compare:str9];
    60.         
    61.         if (ret1 == NSOrderedSame)
    62.             NSLog(@"str8 = str9");
    63.         else if (ret1 == NSOrderedAscending)
    64.             NSLog(@"str8 < str9");
    65.         else if (ret1 == NSOrderedDescending)
    66.             NSLog(@"str8 > str9");
    67.         
    68. //****************************************************
    69.         NSString * str10 = @"This is a NSString test!";
    70.         NSString * str11 = @"st";
    71.         
    72.         NSRange range = [str10 rangeOfString:str11];
    73.         NSLog(@"%ld,%ld",range.length,range.location);
    74.         
    75. //****************************************************
    76.         
    77.         NSString * str12 = @"abcdefghijklmnopqrstuvwxyz";
    78.         
    79.         NSString * str13 = [str12 substringFromIndex:23];
    80.         NSLog(@"%@",str13);
    81.         
    82.         NSString * str14 = [str12 substringToIndex:7];
    83.         NSLog(@"%@",str14);
    84.         
    85.         NSString * str15 = [str12 substringWithRange:NSMakeRange(7, 7)];
    86.         NSLog(@"%@",str15);
    87.         
    88.     }
    89.    
    90.     return 0;
    91. }
    复制代码
  • TA的每日心情

    2024-10-15 10:05
  • 签到天数: 372 天

    [LV.9]以坛为家II

     楼主| 发表于 2014-1-8 19:43:02 | 显示全部楼层
    以下结果运行如下:
    1. 2014-01-08 19:41:30.861 NSString[1881:303] Hello str!
    2. 2014-01-08 19:41:30.863 NSString[1881:303] Hello OC!
    3. 2014-01-08 19:41:30.863 NSString[1881:303] Hello 2B!
    4. 2014-01-08 19:41:30.863 NSString[1881:303] Hello str!
    5. 2014-01-08 19:41:30.863 NSString[1881:303] Hello Temp 2B
    6. 2014-01-08 19:41:30.864 NSString[1881:303] Hello str!
    7. 2014-01-08 19:41:30.864 NSString[1881:303] Hello Temp str
    8. 2014-01-08 19:41:30.864 NSString[1881:303] 1
    9. 2014-01-08 19:41:30.865 NSString[1881:303] str8 < str9
    10. 2014-01-08 19:41:30.865 NSString[1881:303] 2,21
    11. 2014-01-08 19:41:30.865 NSString[1881:303] xyz
    12. 2014-01-08 19:41:30.866 NSString[1881:303] abcdefg
    13. 2014-01-08 19:41:30.866 NSString[1881:303] hijklmn
    14. Program ended with exit code: 0
    复制代码
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    手机版|小黑屋|Archiver|iOS开发笔记 ( 湘ICP备14010846号 )

    GMT+8, 2024-11-23 19:47 , Processed in 0.045072 second(s), 19 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表