//1.使用苹果帮助文档
//windoow->documentation
//搜多nsstring,找nsstirng class reference
里面的信息如下
//1.使用苹果帮助文档 两种方式
//windoow->documentation
//搜多nsstring,找nsstirng class reference
//第二种方式按住alt键进入
//c语言是ascii编码,oc是
//字符串是一个对象,和c语言的不一样
#import <Foundation/Foundation.h>
#define kBool(r1) r1?@"YES":@"NO"
int main(int argc, const char * argv[])
{
@autoreleasepool {
#pragma mark ---------NSString 不可变字符串
//如何查阅头文件(。h)
//如何查阅API文档
//1.使用常量字符串创建,也就是使用字面量创建
NSString *str = @"hello";
NSLog(@"str = %@", str);
//2.使用格式化字符串创建对象
NSString *str1 = [NSString stringWithFormat:@"一瓶红牛%.1f元钱",6.5];
NSLog(@"str1 = %@",str1);
NSString *str3 = [NSString stringWithFormat:@"%@ world",str];
NSLog(@"%@",str3);
//使用常量字符串
NSString *str4 = [NSString stringWithString:@"hello lili"]; //ios7之前可以用,现在不让用了;
//从文件中读取文本,创建字符串对象。txt。其他格式也行
NSString *str5 = [[NSString alloc]initWithContentsOfFile:@"/Users/lanou3g/Desktop/code/8_3_foundation_基本对象/8_3_foundation_基本对象/haha.txt" encoding:NSUTF8StringEncoding error :nil];
NSLog(@"%@",str5);
//使用c语言中的字符串创建
NSString *str6 = [NSString stringWithCString:"week" encoding:NSUTF8StringEncoding];
NSLog(@"%@",str6 );
#pragma mark -------字符串长度,范围
NSString *teststr = [NSString stringWithFormat:@"shanghaitan"];
//获取字符串长度
NSUInteger strlength = [teststr length];
NSLog(@"%lu",strlength);
//获取一部分字符串,NSRange是一个结构体,里面存储的是正整型的,用%lu打印
NSRange strRange = [teststr rangeOfString:@"hai"];
NSLog(@"%lu",strRange.length);
NSLog(@"%lu",strRange.location);
NSLog(@"%@", NSStringFromRange(strRange));
#pragma mark -------字符串的比较
//判定字符串是否包含某个前缀,用%d打印bool类型
BOOL b = [teststr hasPrefix:@"shang"];
NSLog(@"%d",b);
NSLog(@"%@",kBool(b));
//判断后缀
BOOL b1 = [teststr hasSuffix:@"上海"];
NSLog(@"%d",b1);
NSString *str7 = @"abc";
NSString *str8 = @"zyx";
//字符串的比较, 结果是NSInteger,用%ld输出,是长整型
/*
结果 -1,0,1 为小于,等于,大于
*/
NSComparisonResult result = [str8 compare:str7];
NSLog(@"%ld",result);
//是否包含某一小段字符串
// b = [teststr containsString:@"ta"];
NSRange rang2 = [teststr rangeOfString:@"tan"];
NSLog(@"%@",NSStringFromRange(rang2));
if (rang2.length == 0) {
NSLog(@"不存在");
}else
{
NSLog(@"存在查询的结果");
}
//判断两个字符串对象的内容是否相同
b1 = [ str7 isEqualToString:str8];
NSLog(@"%@",kBool(b1));
}
#pragma mark -------字符串大小写转换
//转小写
NSMutableString *s1 = @"asdfSADFS";
NSMutableString *s2 = [s1 lowercaseString];
NSLog(@"%@",s2);
//转大写
NSMutableString *s3 = [s2 uppercaseString];
NSLog(@"%@",s3);
#pragma mark ------------字符串截取
//从指定的位置截取到结尾
NSMutableString *s4 = [s3 substringFromIndex:0];//包含指定的位置
NSLog(@"%@",s4);
s4 = [s3 substringToIndex:3]; //不包含指定的位置
NSLog(@"%@",s4);
NSRange range =NSMakeRange(2, 3);
s4 = [s3 substringWithRange:range];
NSLog(@"%@",s4);
#pragma mark -----------字符串的拼接
//NSString 是不可变的,拼接和替换的本质是返回一个新的字符串;
NSString *str9 = @"北京";
NSString *str10 = @"蓝欧科技";
NSString *str11 = [str9 stringByAppendingString:str10];
NSString *str12 = [str10 stringByAppendingFormat:@"asdfsa%d",5];
#pragma mark --------------替换
NSString *temp1 = [str11 stringByReplacingOccurrencesOfString:@"北京" withString:@"南京"];
NSLog(@"%@",temp1);
NSString *temp2 = [str11 stringByReplacingCharactersInRange:NSMakeRange(0, 1) withString:@"东"];
NSLog(@"%@",temp2);
#pragma mark ---------------字符串和基本数据类型转换
// @"123",@"12.5"
NSString *str6 = @"123";
//将字符串转化为整形数
int n = [str6 intValue];
NSLog(@"n = %d",n);
#pragma mark ----------NSMutableString
//NSMutablestring是NSString的子类
/*
区别
1.NSString 是NSMutableString的父类
2.修改NSStirng类型的对象,本质是创建一个新的字符串对象,没有修改原始对象字符串对象
3.修改NSMutableString类型的对象,修改的是原始字符串对象
*/
NSString *st2 = @"hello";
NSLog(@"st2 的地址是%p 内容是%@",st2,st2);
st2 = [st2 stringByAppendingString:@"World"];
NSLog(@"st2 的地址是 %p 内容是%@",st2,st2);
NSMutableString *st1 = [[NSMutableString alloc]init];
NSLog(@"%ld",st1.length);
//设置
[st1 setString:@"xin"];
NSLog(@"st1 = %@",st1);
//拼接
[st1 appendString:@",f you "];
NSLog(@"st1 = %@",st1);
[st1 insertString:@"ya" atIndex:0];
NSLog(@"st1 = %@",st1);
[st1 replaceCharactersInRange:NSMakeRange(0, 4) withString:@"qiaoyaxin"];
NSLog(@"st1 = %@",st1);
[st1 deleteCharactersInRange:NSMakeRange(0, 4)];
NSLog(@"st1 = %@",st1);
return 0;
}