int main(int argc, const char * argv[]) {
@autoreleasepool {
NSString *str1=@"Hello ";
NSString *str2=@"World!";
NSString *str3;
NSString *str4;
NSLog(@"%ld",[str1 length]);
//求字符串有效长度 返回值NSUInteger
str3=[str1 stringByAppendingString:str2];
//创建一个新的字符串并返回 该字符串由两个字符串拼接而成 原来两个字符串并不改变
str4=[str1 stringByAppendingFormat:@"World!"];
//格式化创建一个新的字符串并返回 该字符串由两个字符串拼接而成 原来两个字符串并不改变
NSLog(@"%@",str1);
NSLog(@"%@",str2);
NSLog(@"%@",str3);
NSLog(@"%@",str4);
NSString *str5=[NSString stringWithString:str1];
//将一个字符串复制到另一个字符串 其实质就是将一个字符串的地址赋值给另一个字符串 两者是同一个地址 参数只能是字符串变量 参数如果是字符串常量会警告字面冗长 提示直接把字符串常量赋值给另一个字符串变量
NSLog(@"%p",str1);
NSLog(@"%p",str5);
NSString *str6=[NSString stringWithFormat:@"Hello "];
//类似NSLog()函数 与stringWithStrng:不同在于会在堆上重新分配内存 而不是将一个字符串的地址赋值给另一个字符串 两者不是一个地址
NSLog(@"%p",str1);
NSLog(@"%p",str6);
char str[10]="iceiceice";
NSString *str7=[NSString stringWithUTF8String:str];
//使用C字符串创建新字符串对象
// NSString *str7=[NSString stringWithUTF8String:"iceiceice"];
NSLog(@"%p",str);
NSLog(@"%p",str7);
NSString *str8=[NSString stringWithCString:str encoding:NSUTF8StringEncoding];
// NSString *str8=[NSString stringWithCString:"iceiceice" encoding:NSUTF8StringEncoding];
//与stringWithUTF8String:不同在于可以自己选择编码格式 参数NSStringEncoding是编码格式 一般使用UTF8格式
NSLog(@"%p",str);
NSLog(@"%p",str8);
NSString *URLStr=@"http://www.hupu.com";
//内容是网址的字符串对象
NSURL *url=[NSURL URLWithString:URLStr];
//将字符串对象转换成网址对象
NSError *error=nil;
//错误对象赋空
NSString *str9=[NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:&error];
//error:参数传入error对象地址 所以是个二级指针
NSLog(@"%@",URLStr);
NSLog(@"%@",error);
NSLog(@"%@",str9);
NSLog(@"%@",[str1 isEqualToString:str2]?@"YES":@"NO");
//比较两个字符串对象是否相等 返回值BOOL类型
if ([str1 compare:str3]==NSOrderedAscending) {
NSLog(@"%@<%@",str1,str3);
}
else if ([str1 compare:str3]==NSOrderedSame) {
NSLog(@"%@==%@",str1,str3);
}
else if ([str1 compare:str3]==NSOrderedDescending) {
NSLog(@"%@>%@",str1,str3);
}
//比较两个字符串对象大小 返回值NSComparisonResult
if ([[str1 uppercaseString] caseInsensitiveCompare:[str1 lowercaseString]]==NSOrderedSame) {
NSLog(@"%@==%@",[str1 uppercaseString],[str1 lowercaseString]);
}
//比较两个字符串对象大小 非敏感比较
NSLog(@"%@",[str3 uppercaseString]);
//将字符串转换为大写 原字符串不改变
NSLog(@"%@",str3);
NSLog(@"%@",[str3 lowercaseString]);
//将字符串转换为小写 原字符串不改变
NSLog(@"%@",str3);
NSLog(@"%@",[str7 capitalizedString]);
NSLog(@"%s",[str3 UTF8String]);
//将字符串对象转换成C字符串
NSLog(@"%s",[str3 cStringUsingEncoding:NSUTF8StringEncoding]);
//与UTF8String不同在于可以自己选择编码格式
NSString *str10=@"I am a ios programmer!";
NSString *subStr;
subStr=[str10 substringToIndex:4];
//创建一个子串 从开头到到索引 不包括索引 原字符串不改变
NSLog(@"%@",subStr);
subStr=[str10 substringFromIndex:5];
//创建一个子串 从索引到结尾 包括索引 原字符串不改变
NSLog(@"%@",subStr);
NSRange range1;
range1.location=7;
range1.length=3;
//NSRange结构体两个成员变量location和length
subStr=[str10 substringWithRange:range1];
//创建一个子串 通过指定范围创建 原字符串不改变
NSLog(@"%@",subStr);
subStr=[str10 substringWithRange:NSMakeRange(7, 3)];
//NSRange可以直接通过NSMakeRange()函数设置
NSLog(@"%@",subStr);
NSRange range2=[str10 rangeOfString:@"ios"];
NSLog(@"loction=%ld,length=%ld",range2.location,range2.length);
//在字符串中查找指定子串范围 location和length都是NSUInteger
NSRange range3=[str10 rangeOfString:@"iceiceice"];
if (range3.location==NSNotFound) {
NSLog(@"%ld",range3.location);
}
//如果location等于NSNotFound(无穷大) 没有找到 NSNotFound就是NSInteger的最大值9223372036854775807
if (range3.length==0) {
NSLog(@"SubString not found");
}
//或者如果length等于0 也是没有找到
NSString *str11=@"http://www.baidu.com";
NSString *str12=@"速度与激情7.rmvb";
NSLog(@"%@",[str11 hasPrefix:@"http://"]?@"YES":@"NO");
//判断字符串是否以参数为前缀
NSLog(@"%@",[str12 hasSuffix:@".rmvb"]?@"YES":@"NO");
//判断字符串是否以参数为后缀
unichar ch=[str10 characterAtIndex:11];
NSLog(@"%c",ch);
//返回索引位置字符 unichar就是unsigned short NSString就是由unichar组成
NSString *str13=@"12345";
NSLog(@"%ld",[str13 integerValue]);
//返回NSInteger
NSLog(@"%f",[str13 doubleValue]);
//返回double
NSLog(@"%d",[str13 boolValue]);
//返回BOOL
Fraction *frac1=[[Fraction alloc] init];
[frac1 setNumerator:1 andDenominator:2];
NSLog(@"%@",frac1);
Fraction *frac2=[[Fraction alloc] init];
[frac2 setNumerator:1 andDenominator:3];
NSLog(@"%@",frac2);
//%@显示对象可以显示它的全部内容 也就是调用description
//默认情况下 description方法继承于NSObject类 返回对象所属类名和对象地址 可以覆写用来更方便地显示对象
Fraction *result=[frac1 add:frac2];
NSLog(@"%@+%@=%@",frac1,frac2,result);
NSString
最新推荐文章于 2024-10-09 21:25:21 发布