#import <Foundation/Foundation.h>
int main(int argc,const char * argv[]) {
@autoreleasepool {
/*
构造字符串四种方式
NSString 不可变字符串
*/
//1.初始化一个字符串对象
NSString *string1 = @"ibokanwisdom";
// NSString *string2 = [NSString stringWithString:@"ibokanwisdom"];
// NSString *string3 = [[NSString alloc]initWithString:@"ibokanwisdom"];
//使用NSString的类方法来创建字符串,+ (instancetype)stringWithFormat:@"格式化标志符"
NSString *string4 = [NSStringstringWithFormat:@"%d,%.1f,hi guys",5,4.5];
NSLog(@"string4 = %@",string4);
//对于用格式化方式来构造字符串实例来讲,其作用并不仅仅来构造一个字符串对象,它还可以用来做字符串拼接
NSString *string5 = @"Rick";
NSString *string6 = @"666";
NSString *string7 = [NSStringstringWithFormat:@"%@%@",string5,string6];
NSLog(@"string7 = %@",string7);
//从本地文件中读取字符串
NSString *path1 =@"/Users/liujiahao/Desktop/OC_04_02/OC_04_02/t.html";
NSStringEncoding encoding ;//NSUTF8StringEncoding(4)
NSError *error ;
NSString *string8 = [NSStringstringWithContentsOfFile:path1 encoding:NSUTF8StringEncodingerror:&error];
// NSLog(@"string8 = %@,error = %@",string8,error);
//从网络读取字符串
NSURL *url = [NSURLURLWithString:@"http://www.baidu.com"];
// NSString *string10 = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
// NSLog(@"string10 = %@",string10);
//字符串的操作
NSString *string11 = @"你是逗比么,我都受不了你了";
//字符串属性 长度 length
NSUInteger length = [string11 length];
NSLog(@"length = %lu",length);
//字符串的截取
NSString *subString1 = [string11substringToIndex:5]; //获取从字符串开头到字符串的 to的位置的字符串内容,不包括to位置,从0算起
NSLog(@"subString1 = %@",subString1);
NSString *subString2 = [string11 substringFromIndex:6]; //获取从字符串的from位置到结尾的字符串内容,包含from位置的字符
NSLog(@"subString2 = %@",subString2);
NSString *subString3 = [string11 substringWithRange:NSMakeRange(2,2)];
NSLog(@"subString3 = %@",subString3);
//获取字符串中的某个字符
NSString *string12 = @"abcdefg";
char c = [string12characterAtIndex:0];//根据字符串中的位置 index来得到一个字符,注意字符串的索引是从0开始的
NSLog(@"%c",c);
//字符串比较,如何判断两个字符串是否相等
if (subString2 == subString3)
{
//内容和指针都相等时,才成立
NSLog(@"subString2和 subString3相等");
}
else
{
NSLog(@"subString2和 subString3不相等");
}
/*
如何才能让两个字符串的指针和内容都相等呢?
P96
这里需要注意两个概念 : 浅拷贝 和深拷贝
浅拷贝:是指源对象与拷贝对象共用一份实体,仅仅是引用的变量名称不同。
深拷贝:是指源对象与拷贝对象互相独立,其中任何一个对象的改动都不会对另一个对象造成影响。
在字符串中,[NSString stringWithString:]方法是用于浅拷贝一个现有的字符串产生一个字符串
*/
NSString *subString4 = [NSStringstringWithString:subString2];
NSString *subString5 = [NSStringstringWithFormat:@"%@",subString2];
if (subString2 == subString5)
{
//内容和指针都相等时,才成立
NSLog(@"subString2和 subString5相等");
}
else
{
NSLog(@"subString2和 subString5不相等");
}
//在实际开发过程中,我们通常只需要比较两个字符串的内容是否相等
if ([subString2 isEqualToString:subString5])
{
NSLog(@"subString2和 subString5内容相等");
}
else
{
NSLog(@"subString2和 subString5内容不相等");
}
//比较两个字符串的大小
NSString *cmpString1 = @"hehehehehehe";
NSString *cmpString2 = @"hahahahahaha";
NSComparisonResult result = [cmpString1compare:cmpString2];
switch (result) {
caseNSOrderedAscending:
{
NSLog(@"cmpString1 < cmpString2,升序");
}
break;
case NSOrderedSame:
{
NSLog(@"cmpString1 = cmpString2");
}
break;
caseNSOrderedDescending:
{
NSLog(@"cmpString1 > cmpString2,降序");
}
break;
default:
break;
}
//根据字符串拿到对应的range
//NSString *string11 = @"你是逗比么,我都受不了你了";
NSRange range = [string11 rangeOfString:@"逗比"];
NSLog(@"%@",[NSValuevalueWithRange:range]);
//只输出第一个遇到该字符串的位置及 该字符串的长度
NSRange range1 = [string11 rangeOfString:@"你"];
NSLog(@"%@",[NSValuevalueWithRange:range1]);
//判断字符串中是否有XX前缀或 XX后缀
NSString *string13 =@"http://www.baidu.com";
if ([string13 hasPrefix:@"http://"])
{
NSLog(@"含有此前缀");
}
else
{
NSLog(@"不含有此前缀");
}
//判断是否为 jpg或 png 后缀
NSString *string14 = @"dkjfkj.jpg";
if ([string14 hasSuffix:@".jpg"] || [string14 hasSuffix:@"png"])
{
NSLog(@"含有此后缀");
}
else
{
NSLog(@"不含有此后缀");
}
//字符串 拼接
NSString *string15 = @"www.baidu.com";
NSString *string16 = [@"http://"stringByAppendingString:string15]; //直接把两个字符串连接起来,调用者在前,传进来的字符串在后
NSLog(@"string16 = %@",string16);
//http://img0.bdstatic.com/img/image/shouye/hbmnp003.jpg
NSString *string17 =@"http://img0.bdstatic.com/img/image/shouye";
NSString *string18 = @"hbmnp003.jpg";
NSString *string19 = [string17 stringByAppendingFormat:@"/%@",string18]; //连接两个字符串,并且第二个字符串是按一定格式传进来的
NSLog(@"string19 = %@",string19);
// NSString *string20 = [@"http://" stringByAppendingPathComponent:string18];
// NSLog(@"string20 = %@",string20);
NSString *string21 =@"http://img0.bdstatic.com/img/image/shouye/hbmnp003.jpg/ddddd";
// NSString *string21 = @"a\\dd\\dfds\\s\\t";
NSString *string22 = [string21 lastPathComponent];
NSLog(@"string22 = %@",string22);
NSString *theImageName = @"Rick";
NSString *string23 = @"png";
// NSString *q = [theImageName stringByAppendingFormat:@".%@",string23];
// NSLog(@"%@",q);
NSString *string24 = [theImageName stringByAppendingPathExtension:string23];
NSLog(@"string24 = %@",string24);
//字符串的其他常用方法
//1.字符串的转换函数
NSString *str1 = @"111add333";
int a1 = [str1 intValue];
float b1 = [str1 floatValue];
double c1 = [str1 doubleValue];
NSLog(@"%d",a1);
//2.字符串大小写转换函数
NSString *str2 = @"aaabb";
NSString *str3 = [str2 uppercaseString]; //将字符全部改写成大写
NSLog(@"str3 = %@",str3);
NSString *str4 = [str3 lowercaseString]; //将字符全部改写成小写
NSLog(@"str4 = %@",str4);
NSString *str5 = [str2 capitalizedString]; //将首个字符改写成大写,其余的都小写
NSLog(@"str5 = %@",str5);
//字符串的替换函数
NSString *str6 = [str2stringByReplacingOccurrencesOfString:@"bb"withString:@"dd"];
NSLog(@"str6 = %@",str6);
NSString *str7 = [str2stringByReplacingCharactersInRange:NSMakeRange(1,2) withString:@"cc"]; //将原字符串中range范围内的内容替换成replacement的内容
NSLog(@"str7 = %@",str7);
NSString *str8 = @"aa-bb-cc-dd-ee";
NSArray *array = [str8 componentsSeparatedByString:@"-"];
//以separator为分隔符,将原字符串的内容进行分割,分割得到的结果放到一个数组里,作为返回值
NSLog(@"array = %@",array);
}
return 0;
}
========================================================================================
t.html
在工程项拉进一个t.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Style-Type" content="text/css">
<title></title>
<meta name="Generator" content="Cocoa HTML Writer">
<meta name="CocoaVersion" content="1404.13">
<style type="text/css">
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica}
</style>
</head>
<body>
<p class="p1">Hello World!!!</p>
</body>
</html>
09-14