首页 > 其他 > 详细

[学习笔记]NSString andNSMutableString

时间:2014-04-10 08:00:32      阅读:469      评论:0      收藏:0      [点我收藏+]

温故而知新

巩固和学习NSString 和NSMutableString.

1. NSString

bubuko.com,布布扣
//
//  AppDelegate.m
//  HelloWorld
//
//  Created by lengxuan on 14-4-10.
//  Copyright (c) 2014年 lengxuan. All rights reserved.
//

#import "AppDelegate.h"
#import "Person.h"

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    
    // Override point for customization after application launch.
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];
    
    
    // - - - - 创建一个字符串
    // 创建在常量区
    NSString *string1 = @"这是一个字符串常量";
    // 创建在堆区
    NSString *string2 = [[NSString alloc] init];
    // 创建在常量区
    NSString *string3 = [NSString string];
    // 快速创建一个格式化的字符串, 创建在堆区
    int number = 2;
    NSString *string4 = [[NSString alloc] initWithFormat:@"%d",number];
    
    // 比较字符串
    NSString *string5 = [[NSString alloc] initWithFormat:@"test"];
    NSString *string6 = [[NSString alloc] initWithFormat:@"test"];
    NSString *string7 = @"test";
    NSString *string8 = @"test";
    
    // - - - - 测试字符串内容是否相等
    if([string5 isEqualToString:string6]){
        NSLog(@"string5 isEqualTo string6");
    }
    if(string5 == string6){
        NSLog(@"string5 == string6");
    }else{
        NSLog(@"string5 != string6");
    }
    // 创建在堆区,内容相等但是指针不相等
    // Result : string5 isEqualTo string6
    // Result : string5 != string6
    
    if([string7 isEqualToString:string8]){
        NSLog(@"string7 isEqualTo string8");
    }
    if(string7 == string8){
        NSLog(@"string7 == string8");
    }else{
        NSLog(@"string7 != string8");
    }
    // 创建在常量区,内容相等且指针相等
    // Result : string7 isEqualTo string8
    // Result : string7 == string8
    
    // -- - - 比较字符串的大小
    NSString *string9 = @"a";
    NSString *string10 = @"b";
    NSLog(@"string9 caseInsensitiveCompare:string10 : %d",[string9 caseInsensitiveCompare:string10]);
    // Result: string9 caseInsensitiveCompare:string10 : -1
    // -1表示升序,即前者小于后者。0表示相等。1表示降序。 字符串的升降序是根据ASCII来排序的。
    
    // -- - - 求字符串的长度
    NSString *string11 = @"string length";
    [string11 length];

    // - - - - 改变字符串大小写
    NSString *string12 = @"hello, world!";
    [string12 uppercaseString];     //全部大写
    [string12 lowercaseString];     //全部小写
    [string12 capitalizedString];   //单词首字母大写,其他字母小写
    
    // - - - - 将字符串转换成基本数据类型
    NSString *string13 = @"3.14";           //字符串中含有非数字字符,则只会取到非数字字符左方的数字。比如:“3.1a4” : 3.10000
    NSLog(@"%d", [string13 boolValue]);     //转换成BOOL类型, Result : 1  等于0的时候结果为0,其余为1
    NSLog(@"%f", [string13 floatValue]);    //转换成浮点型, Result : 3.1400
    NSLog(@"%f", [string13 doubleValue]);   //转换成双精度类型, Result : 3.1400
    NSLog(@"%d", [string13 intValue]);      //转换成整型, Result : 3
    
    // - - - - 将字符串分割成数组
    NSString *string14 = @"ab,cd,ef,gh";
    NSArray *array = [string14 componentsSeparatedByString:@","];
    NSLog(@"array componentsSeparatedByString: %@", array);
    
    // - - - - 截取字符串
    NSString *string15 = @"abcdefgh";
    NSLog(@"string15 subStringToIndex:2 is %@", [string15 substringToIndex:2]);     //从开头一直截取到指定下标,不包含该下标。 Result : ab
    NSLog(@"string15 subStringFromIndex:2 is %@", [string15 substringFromIndex:2]); //从指定下标截取到末尾,包含该下标。 Result : cdefgh
    
    // - - - - 根据范围来截取字符串
    NSString *string16 = @"abcdefgh";
    NSLog(@"string16 location:2 length:3 is %@",[string16 substringWithRange:NSMakeRange(2, 3)]);   //从指定下标截取指定长度的字符串。 Result : cde
    
    // - - - - 拼接字符串
    NSString *string17 = @"abc";
    NSString *string18 = @"def";
    NSString *stringAppend1 = [[NSString alloc] initWithFormat:@"%@%@", string17, string18];
    NSString *stringAppend2 = [string17 stringByAppendingFormat:@"%@", string18];
    NSString *stringAppend3 = [string17 stringByAppendingString:string18];
    
    
    // - - - - 查找字符串里的字符串位置
    NSString *string19 = @"zcaadasdastarget=_lengxuanfeiadadas";
    NSRange range = [string19 rangeOfString:@"target=_lengxuanfei"];
    if(range.location != NSNotFound){
        NSLog(@"find target_lengxuanfei, location : %u, length : %u", range.location, range.length);
    }
    //Result : find target_lengxuanfei, location : 10, length : 19
}
bubuko.com,布布扣

 

  2. NSString

  NSMutable是NSString的子类,继承上述NSString的方法和属性。

      但是不同点是;NSString在内存中的大小的地址是不变的,重新复制时,其实是开辟另外一块内存地址分配给NSString。是不可变的。

     NSMutableString可以在原先分配的内存的基础上通过增减内存的方式来改变自己。是可变的。                   

bubuko.com,布布扣
  // 插入字符串
    NSMutableString *mutableString1 = [[NSMutableString alloc] initWithString:@"abc"];
    [mutableString1 insertString:@"defg" atIndex:3];                //直接在当前字符串的指定下标处插入字符。
    NSLog(@"mutableString1 insert result: %@", mutableString1);     //Result : abcdefg
    // 删除字符串
    [mutableString1 deleteCharactersInRange:NSMakeRange(3, 4)];     //直接在当前字符串中删除指定范围内的字符
    NSLog(@"mutableString1 delete(3,4) result: %@", mutableString1);//Result : abc
    //替换字符串
    [mutableString1 replaceCharactersInRange:NSMakeRange(0, 3) withString:@"defg"]; //在当前字符串内替换掉指定范围内的字符串
    NSLog(@"mutableString1 replace(3,4) result: %@", mutableString1);               //Result : defg
bubuko.com,布布扣

 

 

 

[学习笔记]NSString andNSMutableString,布布扣,bubuko.com

[学习笔记]NSString andNSMutableString

原文:http://www.cnblogs.com/lengxuanfei/p/3655568.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!