字符串算是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 }