Objective-C字符串初识(下)

1.基本数据类型与字符串的相互转换

  1.1基本数据类型转换到NSString

 1         // 1 int -> 转换成NSString
 2         //  5   @"5"
 3         int age = 18;
 4         NSString * str = [[NSString alloc] initWithFormat:@"%d",age];
 5         
 6         NSLog(@"%@",str);
 7         
 8         
 9         /*
10          //7.将任意输入的数字,转换成字符串。
11          //如 125 ---》 @"125"      scanf
12          
13          */
14 //        {
15 //            int num;
16 //            scanf("%d",&num);
17 //            NSString * str = [[NSString alloc] initWithFormat:@"%d",num];
18 //            NSLog(@"%@",str);
19 //        }
20         // float -> NSString
21         float f = 1.25;
22         NSString * str2 = [[NSString alloc] initWithFormat:@"%f",f];
23         NSLog(@"%@",str2);
24         // double -> NSString
25         double d = 2.53456;
26         NSString * str3 =[[NSString alloc] initWithFormat:@"%f",d];
27         // char -> NSString
28         char c = 'a';
29         NSString * str4 = [[NSString alloc] initWithFormat:@"%c",c];

  1.2 NSStirng向基本数据类型转换

 1         // NSString -> int
 2         NSString * ageStr = @"18";
 3         int age1 = [ageStr intValue];
 4         
 5         NSLog(@"%d",age1);
 6         // NSString -> float
 7         NSString * str5 = @"1.23";
 8         float f1 = [str5 floatValue];
 9         NSLog(@"%f",f1);
10         // NSString -> double
11         NSString * str6 = @"2.345678";
12         double d1 = [str6 doubleValue];
13         NSLog(@"%.4f",d1);

  需要保证数据的正确性

1         NSString * str7 = @"i386";
2         int i2 = [str7 intValue];
3         NSLog(@"%d",i2);
4         //这种情况无法转换得到386

 

2.大小写的转换

  2.1 小写转化为大写

1         // 转换成大写
2         NSString * str10 = @"qianfeng";
3         NSString * str11 = [str10 uppercaseString];
4         NSLog(@"%@",str11);

  2.2 大写转化为小写

1         // 转换成小写
2         NSString * str12 = [str11 lowercaseString];
3         NSLog(@"%@",str12);

  2.3 首字母大写

1         // 首字母大写,其余字母小写
2         NSString * str13 = [str12 capitalizedString];
3         NSLog(@"%@",str13);
4         

 

3.字符串的重组

  3.1多数据拼接为一个字符串

    stringWithFormat方法

1         int year = 2015;
2         int month = 10;
3         int day = 29;
4         
5         NSString * address = @"北京市海淀区宝胜北里28号四楼前锋教育";
6         
7         NSString * dateAndAddress = [NSString stringWithFormat:@"%d年%d月%d日 %@",year,month,day,address];
8         
9         NSLog(@"%@",dateAndAddress);

  3.2 字符串末尾增加新字符串

    stringByAppendingString方法

1         NSString * str = @"qianfeng";
2         // qianfeng.com
3         NSString * str2 = [str stringByAppendingString:@".com"];
4         NSLog(@"%@",str2);

  3.3 在指定范围内替换字符

    stringByReplacingCharactersInRange方法

1         NSString * str3 = @"www.baidu.com";
2         // www.qianfeng.com
3         NSRange range = {4,5};
4         NSString * str4 = [str3 stringByReplacingCharactersInRange:range withString:@"qianfeng"];
5         NSLog(@"%@",str4);

  3.4 使用新字符串替换原有字符串

    stringByReplacingOccurrencesOfString:(NSString *)    withString:(NSString *) 方法

1         // www.qianfeng.com
2         // www-qianfeng-com
3         NSString * str5 = @"www.qianfeng.com";
4         NSString * str6 = [str5 stringByReplacingOccurrencesOfString:@"." withString:@"-"];
5         // occur
6         NSLog(@"%@",str6);

4. 字符串写入文件 与从文件读取字符串

  4.1 写入文件内

    - (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile encoding:(NSStringEncoding)enc error:(NSError **)error;

 1        NSString * str = @"我在千锋快乐地学习";
 2         NSString * path = @"/Users/wangqitai/Desktop/1559 /day04/";
 3         
 4         NSError * a;
 5         
 6         [str writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:&a];
 7         
 8         if (a == nil) {
 9             NSLog(@"写入成功 %@",a);
10         } else {
11             NSLog(@"写入失败 %@",a);
12         }

  

  4.2 从文件读入字符串

    - (nullable instancetype)initWithContentsOfFile:(NSString *)path encoding:(NSStringEncoding)enc error:(NSError **)error;

 1         NSString * path = @"/Users/wangqitai/Desktop/1559 /day04/str.txt";
 2         
 3         NSError * a;
 4         
 5         NSString * str = [[NSString alloc] initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&a];
 6         
 7         if (a == nil) {
 8             NSLog(@"读入成功 %@",str);
 9         } else {
10             NSLog(@"读入失败 %@",a);
11         }

 

5. 可变字符串

  5.1创建可变字符串

1         // 1 创建可变字符串
2         NSMutableString * muStr = [[NSMutableString alloc] initWithString:@"one"];
3         
4         NSMutableString * muStr2 = [[NSMutableString alloc] init];
5         
6         NSString * str = [[NSString alloc] init];
7         NSLog(@"before set:%@",muStr2);

  5.2 set方法

1         // 1 重置字符串
2         [muStr2 setString:@"abc"];
3         NSLog(@"%@",muStr2);
4         NSMutableString * muStr3 = @"two";
5         NSLog(@"%@",muStr3);

  5.3 追加字符串

    appendString   appendFormat

1         [muStr2 appendString:@"def"];
2         NSLog(@"%@",muStr2);
3 //        int count = 6;
4         [muStr2 appendFormat:@"是%lu个字符",[muStr2 length]];
5         
6         NSLog(@"%@",muStr2);

  5.4 插入字符串  

    在index处插入 

1             NSMutableString * muStr4 = [[NSMutableString alloc] initWithString:@"two"];
2             
3             [muStr4 insertString:@"abc" atIndex:1];
4             NSLog(@"%@",muStr4);

  5.5 删除字符串

    删除起始index为2 长度为2的字符串

1             NSRange range = {2,2};
2             [muStr4 deleteCharactersInRange:range];
3             NSLog(@"%@",muStr4);

 

posted @ 2015-11-01 01:06  GXcoder  阅读(202)  评论(0编辑  收藏  举报