转数组
NSMutableArray *array = [NSMutableArray array];
for (int i = 0; i < [string length]; i++) {
[array addObject:[NSString stringWithFormat:@"%C", [string characterAtIndex:i]]];
}
去空格
NSString *strUrl = [urlString stringByReplacingOccurrencesOfString:@" " withString:@""]
NSString *string = @"object-c2016";
1.截取字符串
newString =[string substringWithRange:NSMakeRange(2,5)];
//表示从下标的第二位开始截取5位字符,注意这里第二位是从0开始数的,即从 j 开始截取,结果为 ject-
NSString *newString =[str substringFromIndex:str.length-6];
NSString *testsubstringToorFromIndex = @"test1234";
NSString *fromIndexstring = [testsubstringToorFromIndex substringFromIndex:2];
NSString *toIndexstring = [testsubstringToorFromIndex substringToIndex:2];
NSLog(@"subtringfromindex is %@",fromIndexstring);
NSLog(@"subtringToindex is %@",toIndexstring);
输出结果
2014-11-29 06:23:59.634 sdktest[587:11024] subtringfromindex is st1234
2014-11-29 06:23:59.634 sdktest[587:11024] subtringToindex is te
//截取后6位
2.分割字符串
newString = [string componentsSeparatedByString:@"-"];
3.判断是否存在某字符串
if([string rangeOfString:@"object"].location !=NSNotFound)
{
}
4.替换字符
[string stringByReplacingOccurrencesOfString:@"c" withString:@"哈哈"];//“哈哈”替换掉“c”
(持续更新中。。。)
5.如果在一个NSString中使用引号,需要采用下面的方法:
[objc] view plain copy
NSString * testStr = @"你好,"你好"";
NSLog(@"%@",testStr);
//输出结果为:你好,"你好"
6. 判断是否含有表情
- (BOOL)stringContainsEmoji:(NSString *)string
{
__block BOOL returnValue = NO;
[string enumerateSubstringsInRange:NSMakeRange(0, [string length])
options:NSStringEnumerationByComposedCharacterSequences
usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) {
const unichar hs = [substring characterAtIndex:0];
if (0xd800 <= hs && hs <= 0xdbff) {
if (substring.length > 1) {
const unichar ls = [substring characterAtIndex:1];
const int uc = ((hs - 0xd800) * 0x400) + (ls - 0xdc00) + 0x10000;
if (0x1d000 <= uc && uc <= 0x1f77f) {
returnValue = YES;
}
}
} else if (substring.length > 1) {
const unichar ls = [substring characterAtIndex:1];
if (ls == 0x20e3) {
returnValue = YES;
}
} else {
if (0x2100 <= hs && hs <= 0x27ff) {
returnValue = YES;
} else if (0x2B05 <= hs && hs <= 0x2b07) {
returnValue = YES;
} else if (0x2934 <= hs && hs <= 0x2935) {
returnValue = YES;
} else if (0x3297 <= hs && hs <= 0x3299) {
returnValue = YES;
} else if (hs == 0xa9 || hs == 0xae || hs == 0x303d || hs == 0x3030 || hs == 0x2b55 || hs == 0x2b1c || hs == 0x2b1b || hs == 0x2b50) {
returnValue = YES;
}
}
}];
return returnValue;
}
计算字符串长度
//获取字符串的宽度
-(float) widthForString:(NSString *)value fontSize:(float)fontSize andHeight:(float)height
{
CGSize sizeToFit = [value sizeWithFont:[UIFont systemFontOfSize:fontSize] constrainedToSize:CGSizeMake(CGFLOAT_MAX, height) lineBreakMode:NSLineBreakByWordWrapping];//此处的换行类型(lineBreakMode)可根据自己的实际情况进行设置
return sizeToFit.width;
}‘
修改字符颜色
1、
NSMutableAttributedString *string = [[NSMutableAttributedString alloc] initWithString:@"关闭 不允许任何人私信我"];
//更改字体
[string addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"PingFangSC-Regular" size:12] range:NSMakeRange(2, string.length-2)];
//修改颜色
[string addAttribute:NSForegroundColorAttributeName value:Black_35 range:NSMakeRange(2, string.length-2)];
cell.nameLabel.attributedText = string;
2、
- (NSMutableAttributedString *)adjustTextColor:(NSString *)text rangeText:(NSString *)rangeText color:(UIColor *)color {
NSRange range = [text rangeOfString:rangeText];
NSMutableAttributedString *attribute = [[NSMutableAttributedString alloc] initWithString:text];
// 设置NSFontAttributeName属性修改字体大小
[attribute addAttributes:@{NSForegroundColorAttributeName:color} range:range];
return attribute;
}
NSMutableAttributedString *aString;
NSString *integralStr = @"10";
NSString *archStr = @"100";
aString = [[NSMutableAttributedString alloc]initWithString:[NSString stringWithFormat:@"今日已成功抢单%@次,累计收款%@元",integralStr,archStr]];
[aString addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(7, integralStr.length)];
[aString addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange( aString.length-1-archStr.length, archStr.length)];
_tipLabel.attributedText = aString;
NSString \*contentStr =@"谢谢你看我的文章"; NSMutableAttributedString *str = [[NSMutableAttributedString alloc]initWithString:contentStr]; //设置:在3~length-3个单位长度内的内容显示成橙色 [str addAttribute:NSForegroundColorAttributeName value:[UIColor orangeColor] range:NSMakeRange(3, str.length-3)]; lable.attributedText=str;
label.attributedText
- (NSMutableAttributedString *)adjustTextColor:(NSString *)text rangeText:(NSString *)rangeText color:(UIColor *)color {
NSRange range = [text rangeOfString:rangeText];
NSMutableAttributedString *attribute = [[NSMutableAttributedString alloc] initWithString:text];
// 设置NSFontAttributeName属性修改字体大小
[attribute addAttributes:@{NSForegroundColorAttributeName:color} range:range];
return attribute;
}
问题描述
使用NSMutableAttributedString设置不同字体,
int a = 50; int b = 10; NSMutableAttributedString *attStr = [[NSMutableAttributedString alloc] initWithString:@"10元抵现券"]; [attStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:a] range:NSMakeRange(0, 2)]; [attStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:b] range:NSMakeRange(2, attStr.length - 2)]; // [attStr addAttribute:NSBaselineOffsetAttributeName value:@(0.36 * (a - b)) range:NSMakeRange(2, attStr.length - 2)]; label.attributedText = attStr;
文字不能居中对齐
解决方法
NSMutableAttributedString 添加NSBaselineOffsetAttributeName这个Attribute
[attStr addAttribute:NSBaselineOffsetAttributeName value:@(0.36 * (a - b)) range:NSMakeRange(2, attStr.length - 2)];
value = 0.36 * (大字号 - 小字号)
int a = 50; int b = 10; NSMutableAttributedString *attStr = [[NSMutableAttributedString alloc] initWithString:@"10元抵现券"]; [attStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:a] range:NSMakeRange(0, 2)]; [attStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:b] range:NSMakeRange(2, attStr.length - 2)]; [attStr addAttribute:NSBaselineOffsetAttributeName value:@(0.36 * (a - b)) range:NSMakeRange(2, attStr.length - 2)]; label.attributedText = attStr;
保留小数点
-(NSString *)notRounding:(float)price afterPoint:(int)position{
NSDecimalNumberHandler* roundingBehavior = [NSDecimalNumberHandler decimalNumberHandlerWithRoundingMode:NSRoundDown scale:position raiseOnExactness:NO raiseOnOverflow:NO raiseOnUnderflow:NO raiseOnDivideByZero:NO];
NSDecimalNumber *ouncesDecimal;
NSDecimalNumber *roundedOunces;
ouncesDecimal = [[NSDecimalNumber alloc] initWithFloat:price];
roundedOunces = [ouncesDecimal decimalNumberByRoundingAccordingToBehavior:roundingBehavior];
[ouncesDecimal release];
return [NSString stringWithFormat:@"%@",roundedOunces];
}
介绍一下参数:
price:需要处理的数字,
position:保留小数点第几位,
然后调用
float s =0.126;
NSString *sv = [self notRounding:s afterPoint:2];