加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

NS类 - NSString的使用

(2013-04-18 19:47:07)
标签:

nsstring

it

分类: Mac/IOS那些事

//一、NSString    


    
|--字符串的创建
 
    //1、创建常量字符串。
    NSString *astring = @"This is a String!";
 
 
    //2、创建空字符串,给予赋值。
 
    NSString *astring = [[NSString alloc] init];
    astring = @"This is a String!";
    [astring release];
         NSLog(@"astring:%@",astring);
         NSString *nil01 = [[NSStringalloc]init];
    NSString *nil02 = [NSStringstring];
    NSLog(@"nil01=%@",nil01);
    NSLog(@"nil03=%@",nil02);
 
 
 
    //3、在以上方法中,提升速度:initWithString方法 这个在常量区 如果是nsmutablestring的话还是在堆区创建的
 
    NSString *astring = [[NSString alloc] initWithString:@"This is a String!"];
    NSLog(@"astring:%@",astring);
       [astring release];
        NSString *string = [[NSStringalloc]initWithString:@"formater"];
    NSString *string2 = [NSStringstringWithString:@"test"];
    NSLog(@"string = %@",string);
    NSLog(@"string = %@",string2);
 
 
 
    //4、用标准c创建字符串:initWithCString方法
 
    char *Cstring = "This is a String!";
    NSString *astring = [[NSString alloc] initWithCString:Cstring];
    NSLog(@"astring:%@",astring);
    [astring release];
 
 
 
    //5、创建格式化字符串:占位符(由一个%加一个字符组成) 这个方式存放再堆区
 
    int i = 1;
    int j = 2;
    NSString *astring = [[NSString alloc] initWithString:[NSString stringWithFormat:@"%d.This is %i string!",i,j]];
    NSLog(@"astring:%@",astring);
      [astring release];
      NSString *formatter = [[NSStringalloc]initWithFormat:@"float:%f",10.11];
    NSString *formatter02 = [[NSStringalloc]initWithFormat:@"int:%d",10];
    NSLog(@"formatter = %@",formatter);
    NSLog(@"formatter02 = %@",formatter02);
 
 
 
    //6、创建临时字符串
 
    NSString *astring;
    astring = [NSString stringWithCString:"This is a temporary string"];
    NSLog(@"astring:%@",astring);
 
    NSString *path = @"astring.text";
    NSString *astring = [[NSString alloc] initWithContentsOfFile:path];
    NSLog(@"astring:%@",astring);
    [astring release];


    NSString *astring = [[NSString alloc] initWithString:@"This is a String!"];
    NSLog(@"astring:%@",astring);
    NSString *path = @"astring.text";    
    [astring writeToFile: path atomically: YES];
    [astring release];  



  文件再support file目录里需要用nsbundle

   NSString* astring = [[NSString alloc] initWithString:[NSString

   stringWithFormat:@"i=%d j=%d",i,j]];
    NSLog(@"astring:%@",astring);
    NSString* path = [[NSBundle mainBundle]pathForResource:
    @"没离开过" ofType:@"lrc"];
    NSString* ContentPath =[[NSString alloc] initWithContentsOfFile:path

    encoding:NSUTF8StringEncoding error:nil];
    [astring writeToFile:path atomically:YES encoding:NSUTF8StringEncoding

    error:nil];
    NSLog(@"fileContent:%@",ContentPath);
    [astring release];


|--字符串的比较       
 
    //用C比较:strcmp函数
 
    char string1[] = "string!";
    char string2[] = "string!";
    if(strcmp(string1, string2) = = 0)
    {
        NSLog(@"1");
    }
 
    //isEqualToString方法    

    NSString *astring01 = @"This is a String!";
    NSString *astring02 = @"This is a String!";
    BOOL result = [astring01 isEqualToString:astring02];
    NSLog(@"result:%d",result);
    //可以直接这么用
    NSString* stra = @"123abc";
    NSString* strb = @"123abc";
        if([stra isEqualToString:strb])
        {
            NSLog(@"isEqualToString ouput");
        }

 
         //测试
    if (bigSmall == bigSamll02) {
        NSLog(@"测试是否为同一对象");
    }else{
        NSLog(@"test the same...");
    }
    //test the same...
    NSString *a = [[NSStringalloc]initWithFormat:@"a"];
    NSString *b = [[NSStringalloc]initWithFormat:@"b"];
    NSLog(@"[a caseinsensitiveCompare b]=%ld",[a caseInsensitiveCompare:b]);

    //output :[a caseinsensitiveCompare b]=-1

    //typedefNS_ENUM(NSInteger, NSComparisonResult)
    // {NSOrderedAscending = -1L, NSOrderedSame, NSOrderedDescending};
 
    //compare方法(comparer返回的三种值)    
    NSString *astring01 = @"This is a String!";
    NSString *astring02 = @"This is a String!";    
    BOOL result = [astring01 compare:astring02] = = NSOrderedSame;    
    NSLog(@"result:%d",result);    
    //NSOrderedSame判断两者内容是否相同
    NSString *astring01 = @"This is a String!";
    NSString *astring02 = @"this is a String!";
    BOOL result = [astring01 compare:astring02] = = NSOrderedAscending;    
    NSLog(@"result:%d",result);
    //NSOrderedAscending判断两对象值的大小(按字母顺序进行比较,astring02大于astring01为真)
    NSString *astring01 = @"this is a String!";
    NSString *astring02 = @"This is a String!";
    BOOL result = [astring01 compare:astring02] = = NSOrderedDescending;    
    NSLog(@"result:%d",result);     
    //NSOrderedDescending判断两对象值的大小(按字母顺序进行比较,astring02小于astring01为真)
    //不考虑大小写比较字符串1
    NSString *astring01 = @"this is a String!";
    NSString *astring02 = @"This is a String!";
    BOOL result = [astring01 caseInsensitiveCompare:astring02] = = NSOrderedSame;    
    NSLog(@"result:%d",result);     
    //NSOrderedDescending判断两对象值的大小(按字母顺序进行比较,astring02小于astring01为真)
         //不考虑大小写比较字符串2
    NSString *astring01 = @"this is a String!";
    NSString *astring02 = @"This is a String!";
    BOOL result = [astring01 compare:astring02
                            options:NSCaseInsensitiveSearch | NSNumericSearch] = = NSOrderedSame;    
    NSLog(@"result:%d",result);     
 
    //NSCaseInsensitiveSearch:不区分大小写比较 NSLiteralSearch:进行完全比较,区分大小写 NSNumericSearch:比较字符串的字符个数,而不是字符值。
 

    NSString *string1 = @"A String";
    NSString *string2 = @"String";
    NSLog(@"string1:%@",[string1 uppercaseString]);//大写
    NSLog(@"string2:%@",[string2 lowercaseString]);//小写
    NSLog(@"string2:%@",[string2 capitalizedString]);//首字母大小
    NSString *string1 = @"This is a string";
    NSString *string2 = @"string";
    NSRange range = [string1 rangeOfString:string2];
    int location = range.location;
    int leight = range.length;
    NSString *astring = [[NSString alloc] initWithString:[NSStringstringWithFormat:@"Location:%i,Leight:%i",location,leight]];
    NSLog(@"astring:%@",astring);
    [astring release];


|-- 字符串的截取
    //-substringToIndex: 从字符串的开头一直截取到指定的位置,但不包括该位置的字符
    NSString *string1 = @"This is a string";
    NSString *string2 = [string1 substringToIndex:3];
    NSLog(@"string2:%@",string2);
    //-substringFromIndex: 以指定位置开始(包括指定位置的字符),并包括之后的全部字符
    NSString *string1 = @"This is a string";
    NSString *string2 = [string1 substringFromIndex:3];
    NSLog(@"string2:%@",string2);
         //-substringWithRange: //按照所给出的位置,长度,任意地从字符串中截取子串
    NSString *string1 = @"This is a string";
    NSString *string2 = [string1 substringWithRange:NSMakeRange(0, 4)];
    NSLog(@"string2:%@",string2);
    NSRange rang;   //也可以直接等于  = {2,2}
    rang.location = 2;
    rang.length = 2;
    NSString * rangString = @"abcdefghigklmn";
    NSLog(@"subStringWithRang=%@",[rangString substringWithRange:rang]);

    //subStringWithRang=cd


|--拼接字符串
    NSString *append1 = @"abc";
    NSString *append2 = @"efg";
    NSString *appendString = [[NSStringalloc]initWithFormat:@"%@%@",append1,append2 ];
    NSLog(@"appendString = %@",appendString);
    NSString *appendString01 = [append1 stringByAppendingString:append2];
    NSLog(@"appendString01 = %@",appendString01);
    NSString *appendString02 = [append1 stringByAppendingFormat:@"%@",append2];

    NSLog(@"appendString02=%@",appendString02);  



|--字符串的查找
    NSString *findString = @"abcdefg==higkemn";
    NSRange findRang = [findString rangeOfString:@"c"];
    NSLog(@"findRang :%@",NSStringFromRange(findRang));
   //findRang :{2, 1}
    if (findRang.location != NSNotFound) {
        NSLog(@"find c literal...");
    }

    //find c literal...

|--字符串转数组

    NSString *arrayString = @"a b c d f g";

    NSArray *array = [arrayString componentsSeparatedByString:@" "];    




    


       //扩展路径
 
    NSString *Path = @"~/NSData.txt";
    NSString *absolutePath = [Path stringByExpandingTildeInPath];
    NSLog(@"absolutePath:%@",absolutePath);
    NSLog(@"Path:%@",[absolutePath stringByAbbreviatingWithTildeInPath]);
 
 
 
    //文件扩展名
    NSString *Path = @"~/NSData.txt";
    NSLog(@"Extension:%@",[Path pathExtension]);

   
    //字符串转数据类型

    NSString *testNum = @"123.1";
    NSLog(@"floatval=%f",[testNum floatValue]);
    NSLog(@"intval = %ld",[testNum integerValue]);
    //floatval=123.099998

    //intval = 123

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有