//
// 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打印汉字
//
// // 通过alloc和init创建的一个空字符串
// 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