1.字符串逆序排序:
NSString *strs = @"abcdefg";
NSString *str = @"";
for (int i = strs.length-1; i>-1; i--)
{
char a = [strs characterAtIndex:i];
NSLog(@"#########%c",a);
str= [str stringByAppendingString:[NSString stringWithFormat:@"%c",a]];
NSLog(@"&&&&&&&&%@",str);
}
2.汉字转拼音:
+ (NSString*)HanZiZhuanPinYin:(NSString*)hanzi
{
CFStringRef aCFString = (CFStringRef)hanzi;
CFMutableStringRef string = CFStringCreateMutableCopy(NULL, 0, aCFString);
CFStringTransform(string, NULL, kCFStringTransformMandarinLatin, NO);
CFStringTransform(string, NULL, kCFStringTransformStripDiacritics, NO);
//CFRelease(string);
return (NSString*)string;
}
3.删除指定字符:
NSArray *array = @[@"(",@")",@"-",@" "];
for (NSString *str in array)
{
NSRange range = [theStr rangeOfString:str];
while (range.length > 0)
{
[theStr deleteCharactersInRange:range];
range = [theStr rangeOfString:str];
NSLog(@"*******%d",range.length);
}
}
4.截取字符串:
NSString *strrrr = @"1233456.png";
NSRange range = [strrrr rangeOfString:@"."];
NSString *result = [strrrr substringToIndex:range.location]
关于字符串的截取:
1、substringFromIndex:x //从索引x开始到结束,包含索引x指向的值(索引的理解有点像C语言中数组的下标)
2、substringToIndex:x //从开始到索引x之前结束,不包含索引x指向的值
3、substringWithRange //定义一个区间,有开始位置和截取长度
如下:
NSString *d = [a1 substringFromIndex:1];
NSString *e = [a1 substringToIndex:3];
NSLog(@"d = %@,e = %@",d,e);
结果输出为:d = evin,e = kev
substringWithRange先定义区间,如下:
NSRange r = {2,3}; //从索引2开始,截取3个长度
NSString *f = [c substringWithRange:r];
NSLog(@"f = %@",f);
结果输出为:f = vin
5.coreText
tips:主要掌握range的使用,对于value只是一些固定的属性
UITextView *tf = [[UITextView alloc]initWithFrame:CGRectMake(50, 100, 270, 30)];
tf.editable = NO; //设置不可编辑
NSString *str = @"2536456http://www.baidu.com";
NSMutableAttributedString *aStr = [[NSMutableAttributedString alloc]initWithString:str];
[aStr addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(0, 2)];//设置字体颜色<pre name="code" class="html">range:NSMakeRange(0, 2) 表示从下标0开始,取两个长度的字符
[aStr addAttribute:NSForegroundColorAttributeName value:[UIColor cyanColor] range:NSMakeRange(2, 2)]; [aStr addAttribute:NSForegroundColorAttributeName value:[UIColor purpleColor] range:NSMakeRange(4, 3)]; [aStr addAttribute:NSForegroundColorAttributeName value:[UIColor blueColor] range:NSMakeRange(7, 20)]; [aStr addAttribute:NSLinkAttributeName value:@"http://www.baidu.com" range:NSMakeRange(7, 20)];//设置超链接
value为你要跳转的网址
[aStr addAttribute:NSUnderlineStyleAttributeName value:@(NSUnderlineStyleSingle) range:[str rangeOfString:@"http://www.baidu.com"]]; //设置下划线 对于此属性5.1之前label可以显示下划线,但是6.1就不可以了
[aStr addAttribute:NSUnderlineColorAttributeName value:[UIColor blackColor] range:NSMakeRange(7, 20)];//设置下划线颜色tf.attributedText = aStr;[self.view addSubview:tf];
6.关于计算文本大小:
之前使用了NSString类的sizeWithFont:constrainedToSize:lineBreakMode:方法,但是该方法已经被iOS7 Deprecated了,而iOS7新出了一个boudingRectWithSize:options:attributes:context方法来代替:
- (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(NSDictionary *)attributes context:(NSStringDrawingContext *)context NS_AVAILABLE_IOS(7_0);
可以使用该方法计算文本绘制所需的空间。size参数是一个constraint ,用于在绘制文本时作为参考。但是,如果绘制完整个文本需要更大的空间,则返回的矩形大小可能比 size更大。一般,绘制时会采用constraint提供的宽度,但高度则会根据需要而定。
+ (CGSize)stringSize:(NSString *)contentString widthOfFatherView:(CGFloat)width textFont:(UIFont *)font{
#if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_7_0
CGSize size = [contentString sizeWithFont:font constrainedToSize:CGSizeMake(width, CGFLOAT_MAX)];
return size;
#else
NSDictionary *attributesDic = @{NSFontAttributeName:font};
CGSize size = [contentString boundingRectWithSize:CGSizeMake(width, CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin attributes:attributesDic context:nil].size;
return size;
#endif
}
保存一个网址:http://www.objccn.io/issue-9-2/
暂时就先贴这么多了,有点混乱,欢迎吐槽,有空更新。。。。。