对字符串urlStr中的汉字 特殊字符 进行编码
NSString *newStr = [urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
hasPrefix以什么开头
NSString* string = @"afdsfads";
BOOL*isHave = [string hasPrefix:@"afd"];
Suffix 以什么结尾
str是否包含@"code=“
1) [str isContainsString:@"code=“];
2) if([string rangeOfString:@"dsf"].length!= 0) {
NSLog(@"包含");
}
截取字符串 以@"code=“分隔为两个或多个字符串
NSArray*array = [str componentsSeparatedByString:@"code="];
字符串替代用@“a”代替@“b”
NSString*name = [_name_TF.text stringByReplacingOccurrencesOfString:@“b” withString:@“a”];
大写转小写
[string lowercaseString];
小写转大写
4.[string uppercaseString];
data 和 string的转换
data-> string
[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
string-> data
[@"123" dataUsingEncoding:NSUTF8StringEncoding];
让按钮的title 部分字符串为其他颜色或有下划线
NSMutableAttributedString 可改变属性的字符串
NSString *title = sender.currentTitle;
/*可以添加属性的字符串*/
NSMutableAttributedString*attStr = [[NSMutableAttributedString alloc] initWithString:title];
NSRangerange = [title rangeOfString:@"新用户"];
NSDictionary*dic = @{NSForegroundColorAttributeName:[UIColor blackColor],NSUnderlineStyleAttributeName:@(NSUnderlineStyleSingle)};
[attStr setAttributes:dicrange:range];
[sender setAttributedTitle:attStrforState:UIControlStateNormal];
不可变字符串用copy修饰
可变字符串用retain修饰
//测试1:
//测试内容:将一个NSString给属性赋值
//结论:如果说是不可变字符串给一个不可变字符串属性赋值,不管是retain还是copy,没有影响
NSString*str = @"123";
self.str1 = str;
self.str2 = str;
NSLog(@"前:%@---%@",self.str1,self.str2);
str = @"456";
NSLog(@"后:%@---%@",self.str1,self.str2);
//测试2:
//结论:可变字符串给不可变字符串的属性赋值,如果可变字符串的内容换了,那么retain修饰的属性也换了,copy不换
NSMutableString*mutableStr = [NSMutableString stringWithString:@"123"];
self.str1 = mutableStr;
self.str2 = mutableStr;
NSLog(@"前:%@---%@",self.str1,self.str2);
[mutableStr appendString:@"456"];
NSLog(@"后:%@---%@",self.str1,self.str2);
//总结:通过测试1和测试2 --> NSString属性,用copy修饰(目的是为了防止可变字符串给属性赋值)
//测试3:
self.str3 = [NSMutableStringstringWithString:@"123"];
self.str4 = [NSMutableStringstringWithString:@"123"];
NSLog(@"%@====%@",self.str3,self.str4);
//[self.str3appendString:@"456"];
[self.str4 appendString:@"456"];
NSLog(@"%@====%@",self.str3,self.str4);
//结论:由于可变字符串属性用copy修饰,意味着self.str3的内容不可变,如果强制拼接,崩溃了
//可变字符串属性一般用retain修饰