今天开始新的学习iOS的字符串处理。
Cocoa Touch应用程序基础框架为开发人员提供了字符串处理对象NSString和NSMutableString。
NSString是不可变的,一旦创建了就不能改变它,如果需要改变字符串的内容,可以使用NSMutableString,它是NSString的子类。
1.如果字符串只包含数字,可以把字符串转换为数字。
NSString *nystring=@"123456";
double doublestr=[nystring floatvalue];//调用实例方法返回浮点数
int intstr=[nystring intvalue];//调用实例方法返回整型数
这两种方法都会试图创建数字值直到遇到字符串中的第一个非数字的字符。对于一个“123abc”的intvalue会返回123。
int strlegth=[nystring length];//获得字符串的长度
BOOL isEqual=[string2 isEqualToString:string2];//比较两个字符串。
2.如果区分大小写的话:
Nsstring *string1=@"ABCD";
Nsstring *string2=@""abcd;
BOOl isEqual;
if([string1 caseInsensitiveCompare:string2]==NSOrderdSame)//使用caseInsensitiveCompare方法来大小写敏感比较字符串
isEqual=true;
else
isEqual=false;
如果想对字符串进行大小写转换的话:
NSString *str1=@"abcdef";
NSString *str2=@"ABCDEF";
NSString *uper=[str1 uppercaseString];//小写转大写
NSString *lower=[str2 lowercaseString];//大写转小写
3.如果想提取字符串的话:
NSString *str=@"one two three";
NSString *oneStr=[str substringToIndex:3];//substringToIndex方法返回字符串开始到指定的索引字字串
得到的结果是 one
如果想获得two的话:
NSRange range=NSMakeRange(4,3);
NSString *twoStr=[str substringWithRange:range];//从第四个字符开始的截取三个字串。这里和java类似
如果想获得three的话:
NSString *threeStr=[str substringFromINdex:8];
4,创建数组:
NSArray *myarray=[str componentsSeparatedByString:@" "];//将字符串str以空格作为分割符分成3个子部分放入数组中;
将会得到数组{@"one",@"two",@"three"}
如果想替换字符串中的字符的话:NSString *ast=[str stringByReplacingOccurrencesOfString:@"three" withString:@"four"];
如果想在一个字符串中查找一个子字符串的话:
NSRange foundRange=[str rangeOfString:@"two"];将会返回4,3表示在第四个位置长度有3
如果想判断一个字符串是否可以包含一个子字符串的话:
BOOL isFound;
if([str rangeOfString:@"two"].location==NSNotFound)
ifFound=false;
else
isFound=true;
5.NSString包含多种处理文件的方法。开发人员可以从文件读出内容,也可以向文件写入内容,以及获取文件、路径和扩展名这样的消息。
如果想把一个文件读入到一个字符串中:
NSString *fileContents=[NSString stringWithContentsOfFile:"myfile.txt"];
如果要获取一个文件的扩展名:
NSString *fileName=@"myfile.txt";
NSString *fileExtension=[fileName pathExtension];
NSString 还提供了方法可以让开发者从一个URL地址中读写内容:
NSURL *url=[NSURL URLWithString:@http://www...];
NSString *contents=[NSString stringWithContentsOfURl:url];
6.把NSString 转换成char:
NSString *mystring=@"mystring";
Char *char=[mystring UTFString];
7.把字符串画出来:
NSString *mystring=@"mystring";
[mystring drawAtPint:CGPoint Object withFont:UIFont Object];
8.将一个字符串添加到另一个字符串的后面:
NSString *mystring=@"word";
NSMUtableString *mymutable=[[NSString alloc]initiwithString:@"hello"];
[mymutable appendString:myString];
下面给出例子:
// insert code here...
NSString *constStr=@"my string";
int strLength=[constStr length];//取得字符串长度
NSString *filename=@"myfile.txt";//声明一个字符串变量并且初始化文件名
NSString *fileExtension=[filename pathExtension];//取得文件名的后缀
NSString *myString=@"one two three";
NSString *onestr=[myString substringToIndex:3];//截取字符串开头到第三个字符的子字串
NSRange rang=NSMakeRange(4, 3);
NSString *twoStr=[myString substringWithRange:rang];//第四个字符开始的三个字符
NSString *threeStr=[myString substringFromIndex:8];//从第八个字符开始的最后几个字符
NSRange foundRange=[myString rangeOfString:@"two"];//在mystring字符串里找到two字符串并返回对应的字符范围
BOOL fond=([myString rangeOfString:@"two"].location==NSNotFound);
NSLog(constStr);
NSLog(@"constStr's legth is %d",strLength);
NSLog(fileExtension);
NSLog(onestr);
NSLog(twoStr);
NSLog(threeStr);
NSLog(@"%i-%i",foundRange.location,foundRange.length);
NSLog(@"%d",fond);
NSString *n=@"123456";
double d=[n doubleValue];
int i=[n intValue];
NSLog(@"%f,%d",d,i);
输出结果
2014-10-23 19:42:34.579 ziFu[348:303] my string
2014-10-23 19:42:34.589 ziFu[348:303] constStr's legth is 9
2014-10-23 19:42:34.594 ziFu[348:303] txt
2014-10-23 19:42:34.596 ziFu[348:303] one
2014-10-23 19:42:34.596 ziFu[348:303] two
2014-10-23 19:42:34.597 ziFu[348:303] three
2014-10-23 19:42:34.599 ziFu[348:303] 4-3
2014-10-23 19:42:34.600 ziFu[348:303] 0
2014-10-23 19:42:34.601 ziFu[348:303] 123456.000000,123456
Program ended with exit code: 0