设置一个路径
NSString *path = @"/Users/kev/Desktop/stu.txt";
NSURL *url = [NSURL fileURLWithPath:path];
NSError *error = nil;//显示详细的错误信息
读取文本里的内容
NSString *s1 = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:&error];
NSLog(@"%@",s1);
将str字符串写入文本
NSString *str = @"are you sure?";
[str writeToURL:url atomically:YES encoding:NSUTF8StringEncoding error:&error];
isEqualToString 用于比较内容是否相等,下面简单使用isEqualToString进行登录验证
NSString *user = @"laowang";
NSString *pad = @"123";//初始一个账号和密码
char inputUser[50];
char inputPad[50];//键盘缓冲区
BOOL flag = 0;
do {
NSLog(@"\n请输入用户名:");
scanf("%s",inputUser);
//将输入的字符串封装到NS类型的字符串
NSString *nUser = [NSString stringWithUTF8String:inputUser];
NSLog(@"\n请输入密码:");
scanf("%s",inputPad);
NSString *nPad = [NSString stringWithUTF8String:inputPad];
NSLog(@"用户:%@",nUser);
NSLog(@"密码:%@",nPad);
if ([nUser isEqualToString:user]&&[nPad isEqualToString:pad]) {
NSLog(@"登录成功,正在进入系统...");
flag = 1;
}
else{
NSLog(@"\n用户名或密码错误,请重新输入:");
flag = 0;
}
} while (flag==0);
compare的使用,里面有三种判断
//NSOrderedAscending NSOrderedSame NSOrderedDescending
NSString *str1 = @"laowang";
NSString *str2 = @"zhangsan";
switch ([str1 compare:str2]) {
case NSOrderedAscending:
NSLog(@"升序");
break;
case NSOrderedSame:
NSLog(@"相等");
break;
case NSOrderedDescending:
NSLog(@"降序");
break;
default:
break;
}
hasPrefix:判断是否以@“xxx”开头
hasSuffix:判断是否以@“xxx”结尾
NSString *str = @"http://www.baidu.com";
//判断以什么开头
if ([str hasPrefix:@"http://"]) {
NSLog(@"是一个URL");
}
else{
NSLog(@"不是一个URL");
}
//判断以什么结尾
if ([str hasSuffix:@".com"]) {
NSLog(@"以.com结尾的URL");
}
else{
NSLog(@"不是.com结尾的URL");
}
NSRange搜索
NSString *str1 = @"hope is good thing";
NSRange range = [str1 rangeOfString:@"is"];
if (range.location==NSNotFound) {
NSLog(@"没有这个单词");
}
else{
NSLog(@"从第%lu个开始,长度为%ld",range.location,range.length);
}
NSRange截取
NSString *str2 = @"<head>iPhone6s</head>";
从第六个开始截取,截取的长度为8个字符
NSRange range1 = {6,8};
NSString *newStr = [str2 substringWithRange:range1];
NSLog(@"\n来自%@客户端",newStr);
这种截取方式不灵活,如果要修改标签,那么截取范围也会修改,所以我们可以使用下面的动态截取
NSRange动态截取
NSString *s1 = @"<head>iPhone6s</head>";
NSInteger local1 = [s1 rangeOfString:@">"].location+1;//表示从第六个下标开始
NSInteger local2 = [s1 rangeOfString:@"<" options:NSBackwardsSearch].location;
options:NSBackwardsSearch表示从后面往前查询,因为NSRange查找到第一个'<'便不会向后查找,这时代码就会报错,
也可以使用local1的方式直接查找‘</’
要截取的长度
NSInteger length = local2-local1;
NSRange range = NSMakeRange(local1, length);
NSString *newS1 = [s1 substringWithRange:range];
NSLog(@"%@",newS1);
字符串替换
NSString *str = @" www/*baidu/*com ";
NSString *newStr = [str stringByReplacingOccurrencesOfString:@"/" withString:@"."];
去掉 ‘*’
NSString *newStr1 = [newStr stringByReplacingOccurrencesOfString:@"*" withString:@""];
NSLog(@"%@",newStr1);
去掉首尾空格
NSCharacterSet *set = [NSCharacterSet whitespaceCharacterSet];
NSString *newStr2 = [newStr1 stringByTrimmingCharactersInSet:set];
NSLog(@"%@",newStr2);
利用range删除可变字符串的字符
NSMutableString *strM = [NSMutableString stringWithFormat:@"www.baiduASD.com"];
NSRange range = [strM rangeOfString:@"ASD"];
如果搜索到“ASD”就将其删除,但是这种方法不能将字符串中的所有“ASD”删除,只会删除遇到的第一个
[strM deleteCharactersInRange:range];
NSLog(@"%@",strM);