字符串算是OC中非常重要和常用的一部分内容,OC中的字符串与我之前在学习C,C++,Java中的字符串有一定的不同,它非常类似于C++中容器的概念,但用法却与之还是有很大的不同,也许是因为OC的语法就与其他我们常用的编程语言不尽相同。

       这里总结一下字符串NSString与NSMutableString。

一. NSString

      NSString代表字符序列不可变的字符串,NSString的功能非常强大,OC的字符串处理比C语言的饿字符串简单、易用得多。

      这里我们通过一个具体的例子来进行分析。

      创建两个字符串对象: 

NSString *str1 = @"this is string A";
NSString *str2 = @"this is string B";

      计算字符串中的字符个数

NSLog(@"Length of str1 : %lu" , [str1 length]);

     利用stringWithString 将一个字符串复制到另一个字符串:

res = [NSString stringWithString : str1];
NSLog(@"copy : %@" , res);

     stringByAppendingString,将一个字符串复制到另一个字符串的末尾:

str2 = [str1 stringByAppendingString:str2];

      isEqualToNumber : 方法比较两个NSNumber对象的数值。程序会返回一个BOOL值,查看这两个值是否相等。

      isEqualToString,判断两个字符串是否相等:

if([str1 isEqualToString: res] == YES)
            NSLog(@"str1 == res");
else
            NSLog(@"str1 != res");

     compare : 方法测试一个值是否在数值上小于、等于或大于另一个值。
      如: [intNumber compare : myNumber]
      若intNumber 小于 myNumber ,返回NSOrderedAscending ;
                           相等                    ,返回NSOrderdSame;
                           大于                    ,返回NSOrderdDescending

       //验证一个字符串是否小于、等于或大于另一个字符串
        compareResult = [str1 compare: str2];
        
        if(compareResult == NSOrderedAscending)
            NSLog(@"str1 < str2");
        else if(compareResult == NSOrderedSame)
            NSLog(@"str1 == str2");
        else
            NSLog(@"str1 > str2");

        uppercaseString,将字符串转换为大写。

        lowercaseString,将字符串转换为小写。

        //将字符串转换为大写
        res = [str1 uppercaseString];
        
        //将字符串转换为小写
        res = [str1 lowercaseString];
       

示例代码如下:

 1 //
 2 //  main.m
 3 //  stringTest
 4 //
 5 //  Created by heyonggang on 13-12-4.
 6 //  Copyright (c) 2013年 MiracleHe. All rights reserved.
 7 //  基本的字符串操作
 8 
 9 #import <Foundation/Foundation.h>
10 
11 int main(int argc, const char * argv[])
12 {
13 
14     @autoreleasepool {
15         
16         // insert code here...
17         //NSLog(@"Hello, World!");
18         NSString *str1 = @"this is string A";
19         NSString *str2 = @"this is string B";
20         NSString *res;
21         NSComparisonResult compareResult;
22         
23         //计算字符串中的字符
24         NSLog(@"Length of str1 : %lu" , [str1 length]);
25         
26         //将一个字符串复制到另一个字符串
27         res = [NSString stringWithString : str1];
28         NSLog(@"copy : %@" , res);
29         
30         //将一个字符串复制到另一个字符串的末尾
31         str2 = [str1 stringByAppendingString:str2];
32         NSLog(@"concatentation: %@" , str2);
33         
34         //验证两个字符串是否相等
35         if([str1 isEqualToString: res] == YES)
36             NSLog(@"str1 == res");
37         else
38             NSLog(@"str1 != res");
39         
40         //验证一个字符串是否小于、等于或大于另一个字符串
41         compareResult = [str1 compare: str2];
42         
43         if(compareResult == NSOrderedAscending)
44             NSLog(@"str1 < str2");
45         else if(compareResult == NSOrderedSame)
46             NSLog(@"str1 == str2");
47         else
48             NSLog(@"str1 > str2");
49         
50         //将字符串转换为大写
51         res = [str1 uppercaseString];
52         NSLog(@"uppercase conversion : %s" , [res UTF8String]);
53         
54         //将字符串转换为小写
55         res = [str1 lowercaseString];
56         NSLog(@"lowercase conversion : %@" , res);
57         
58         NSLog(@"original string : %@" , str1);       
59     }
60     return 0;
61 }
代码清单

相关文章: