iOS前期OC训练OC_04NSString

//

//  main.m

//  OC05_NSString

//

//  Created by dllo on 15/7/20.

//  Copyright (c) 2015 Clare. All rights reserved.

//


#import <Foundation/Foundation.h>


int main(int argc,const char * argv[]) {

    

//    // 字面量

//    NSString *str = @"杨林和俊宝宝的故事";

//    NSArray *arr = @[@"1", @"2"];

//    // length字符串长度

//    NSLog(@"%ld", str.length);

//    // 通过指定的下标获取字符内容

//    NSLog(@"%C", [str characterAtIndex:3]);

//    // 小的%c打印字符大的%C打印汉字

//    

//    // 通过allocinit创建的一个空字符串

//    NSString *str2 = [[NSString alloc] init];

//    

//    // 找错误从reason开始看,只要数组越界马上就崩溃

    

    ///**********************************************

//    NSString *str = [[NSString alloc] initWithString:@"姗姗来了"];

//    NSString *str1 = @"姗姗又来了";

//    NSLog(@"%@", str);

//    NSLog(@"%@", str1);

    

    ///系统提供的便利构造器的方法

//    NSString *str = [NSString string];

//    NSString *str1 = [NSString stringWithString:@"姗姗再一次来了"];

//    // 用便利构造器和初始化方法创建字符串对象可以,也能正常使用,但是系统还是倾向于用字面量的方式来完成对象的创建

//    NSLog(@"%@", str1);

    

    /// substring 截取字符串

//    // substringFromIndex从哪开始截取,到最后,包括下标位置

//    NSString *str = @"nihao, wodemingzijiaoliushanshan";

//    NSLog(@"%@", [str substringFromIndex:5]);

//    // substringToIndex从头开始到哪结束,包括下标

//    NSLog(@"%@", [str substringToIndex:10]);

//    // NSRange 是一个结构体,提供了两个成员变量,一个是location起始位置,还有一个是长度

//   NSRange range = {3, 7};

//    NSLog(@"%@", [str substringWithRange:range]);

//    NSLog(@"%@", [str substringWithRange:NSMakeRange(4, 8)]);

    

    ///判断两个字符串内容是否相同

//    NSString *str1 = @"杨林";

//    NSString *str2 = @"杨林";

//    NSLog(@"%d", [str1 isEqualToString:str2]); // 比较字符串的内容

//    // 比较两个字符串的地址是否相同

//    if (str1 == str2) {

//        

//    }

//    

    

    ///*************************************************

    //判断是否有前后缀

//    // hasPrefix: 是否有前缀

//    // hasSuffix: 是否有后缀

//    NSString *str = @"liushanshan";

//    NSString *p = @"li";

//    NSString *p2 = @"an";

//    NSLog(@"%d", [str hasPrefix:p]);

//    NSLog(@"%d", [str hasSuffix:p2]);

    

    

    

    ///****************************************************

    //把字符串->基本数据类型

//    NSString *strNum = @"1234p5";

//    NSInteger num = [strNum integerValue];

//    NSLog(@"%ld", num);

    

//    // stringWithFormat: 方法可以把任意类型转换成字符串类型,可以进行拼接

//    CGFloat g = 3.14;

//    NSInteger a = 100;

//    NSString *str = [NSString stringWithFormat:@"%ld, %g, %@", a, g, @"刘珊珊"];

//    NSLog(@"%@", str);

//    

    ///***************************************************

    //字符串的大小写设置

//    // uppercaseString 所有的字符都大写

//    // lowercaseString 所有的字符都小写

//    // capitalizedString 首字母大写,其余小写

//    NSString *str = @"liu ShanshAn";

//    NSLog(@"%@", str.uppercaseString);

//    NSLog(@"%@", str.lowercaseString);

//    NSLog(@"%@", str.capitalizedString);

    

    

    ///****************************************************

    // 字符串的比较

    //对应只有三个结果,一个是ASC升序结果是-1,一个是same相同结果是0,降序DESC,结果是1

//    NSString *str = @"nihao";

//    NSString *newStr = @"buhao";

//    NSLog(@"%ld", [str compare:newStr]);

//    

//    NSString *str1 = @"buhao";

//    NSString *newStr1 = @"nihao";

//    NSLog(@"%ld", [str1 compare:newStr1]);

//    

//    NSString *str2 = @"buhao";

//    NSString *newStr2 = @"buhao";

//    NSLog(@"%ld", [str2 compare:newStr2]);

    

    

   ///****************************************************

//    // 字符串的拼接

//    NSString *str11 = @"商帅爱";

//    NSString *str12 = @"刘星宇";

//    NSString *newstr = [str11 stringByAppendingString:str12];

//    NSLog(@"%@", newstr);

    

    ///************************************************

//    // 替换

//    // 第一个参数:字符串原有的部分

//    // 第二个参数:要替换的内容

//    NSString *str = @"商帅没事穿裙子";

//    NSString *strNew = [str stringByReplacingOccurrencesOfString:@"没事" withString:@"最爱"];

//    NSLog(@"%@", strNew);

//    


    // NSString:不可变字符串

    

    // NSMutableString:可变字符串,它是NSString的子类

//    NSMutableString *str = [[NSMutableString alloc] init];

    

    

    //使用字面量的方式创建的是不可变字符串,只能拿不可变的指针来接受

//    NSMutableString *str = @"杨林";

//    NSMutableString *str = [[NSMutableString alloc] initWithString:@"俊宝宝"];

//    NSLog(@"%@", str);

//    

//    NSMutableString *str1 = [NSMutableString stringWithString:@"商帅"];

//    NSLog(@"%@", str1);

    

    

  //  - (void)insertString:(NSString *)aString atIndex:(NSUInteger)loc;

    // - 对象用的,+ 是类用的.()里返回值类型

    

    // 插入

//    NSMutableString *str = [NSMutableString stringWithString:@"nihao,wodemingzijiaoClare"];

//    [str insertString:@"俊宝宝" atIndex:3];

//    NSLog(@"%@", str);

//    

//    NSMutableString *str1 = [NSMutableString stringWithString:@"俊宝宝"];

//    

//    // 范围的替换

//    [str1 replaceCharactersInRange:NSMakeRange(2, 1)withString:@""];

//    NSLog(@"%@", str1);

//    

//    [str setString:@"悠悠"];

//    NSLog(@"%@", str);

//    

//    // 拼接

//    NSString  *str2 = @"大熊";

//    NSString *newStr2 = [str2 stringByAppendingString:@"哆啦A"];

//    NSLog(@"%@", newStr2);

    

    //可变字符串在方法上一般都是没有返回值的,都是对自身的内容进行修改,在访问的时候字符串已经发生了变化,但是不可变字符串会产生一个新的字符串,一般方法会返回NSString *.

    

    //给定一个图片文件名,判断字符串中是否以“png”结尾,如果是就替换成“jpg”,如果不是,就拼接”.jpg”

//    NSString *pic = @"商帅不要脸.png";

//    NSString *sur = @".png";

//    NSString *newpic;

//    if ([pic hasSuffix:sur]) {

//        newpic = [pic stringByReplacingOccurrencesOfString:@"png" withString:@"jpg"];

//    } else {

//        newpic = [pic stringByAppendingString:@".jpg"];

//    }

//    NSLog(@"%@", newpic);

//    

//    NSString *name = @"商帅不要脸.avi";

//    if ([name hasSuffix:@"avi"]) {

//        name = [name stringByReplacingOccurrencesOfString:@".avi" withString:@".png"];

//    } else {

//        name = [name stringByAppendingString:@".jpg"];

//    }

//    NSLog(@"%@", name);

   return 0;

}

//

//  Student.h

//  OC05_NSString

//

//  Created by dllo on 15/7/20.

//  Copyright (c) 2015 Clare. All rights reserved.

//


#import <Foundation/Foundation.h>


@interface Student :NSObject

@property(nonatomic,copy)NSString *stuName;

@property(nonatomic,copy)NSString *stuSex;

@property(nonatomic,assign)NSInteger stuAge;

@property(nonatomic,assign)CGFloat stuScore;


- (void)sayHi;

// 自定义的初始化方法

- (id)initWithStuName:(NSString *)stuName

               stuSex:(NSString *)stuSex

               stuAge:(NSInteger)stuAge

             stuScore:(CGFloat)stuScore;


// 便利构造器

+ (id)studentWithStuName:(NSString *)stuName

                  stuSex:(NSString *)stuSex

                  stuAge:(NSInteger)stuAge

                stuScore:(CGFloat)StuScore;

@end


//

//  Student.m

//  OC05_NSString

//

//  Created by dllo on 15/7/20.

//  Copyright (c) 2015 Clare. All rights reserved.

//


#import "Student.h"


@implementation Student

- (void)sayHi{

    NSLog(@"%@, %@, %ld, %g",_stuName, _stuSex,_stuAge, _stuScore);

}

- (id)initWithStuName:(NSString *)stuName

               stuSex:(NSString *)stuSex

               stuAge:(NSInteger)stuAge

             stuScore:(CGFloat)stuScore

{

   self = [superinit];

   if (self) {

       _stuName = stuName;

       _stuSex = stuSex;

       _stuAge = stuAge;

       _stuScore = stuScore;

    }

    return self;

}


// 便利构造器

+ (id)studentWithStuName:(NSString *)stuName

                  stuSex:(NSString *)stuSex

                  stuAge:(NSInteger)stuAge

                stuScore:(CGFloat)StuScore

{

   Student *stu = [[Studentalloc] initWithStuName:stuNamestuSex:stuSex stuAge:stuAgestuScore:StuScore];

   return stu;

}

@end



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值