iOS字符串截取、包含、替换
NSString *string = @"abavavasdsvx,";
NSRange start = [string rangeOfString:@"["];
NSRange end = [string rangeOfString:@"]"];
NSString *sub = [string substringWithRange:NSMakeRange(start.location, end.location-start.location+1)];
NSLog(@"sub=%@",sub);
控制台就输出:[abcdefghijklmn]
- (void)viewDidLoad
{
NSString *a = @"i like long dress";
NSString *b = [a substringToIndex:4];
NSLog(@"\n b: %@",b);
控制台输出: b: i li
- (void)viewDidLoad
{
NSString *a = @"i like long dress";
NSString *b = [a substringFromIndex:4];
NSLog(@"\n b: %@",b);
}
控制台输出: b: ke long dress
}
NSString*string =@"sdfsfsfsAdfsdf";
string = [string substringToIndex:7];//截取掉下标7之后的字符串
NSLog(@"截取的值为:%@",string);
[string substringFromIndex:2];//截取掉下标2之前的字符串
NSLog(@"截取的值为:%@",string);
NSString*string =@"sdfsfsfsAdfsdf";
NSRangerange = [stringrangeOfString:@"f"];//匹配得到的下标
NSLog(@"rang:%@",NSStringFromRange(range));
string = [string substringWithRange:range];//截取范围类的字符串
ios字符串替换(ios字符串转数字)
NSLog(@"截取的值为:%@",string);
NSString*string =@"sdfsfsfsAdfsdf";
NSArray *array = [string componentsSeparatedByString:@"A"]; //从字符A中分隔成2个元素的数组
NSLog(@"array:%@",array); //结果是adfsfsfs和dfsdf
例如:将字符串中所有带有“-”的字符,都替换成“→”,然后将其更改颜色
NSString *pointStr = @"→";
NSString *trafficStr = @"要我知道-你还得-等放假恩发-第三方的-的发热及";
NSString *strUrl = [trafficStr stringByReplacingOccurrencesOfString:@"-" withString:pointStr]; //这里就是替换字符串
NSArray *trafficArr = [trafficStr componentsSeparatedByString:@"-"]; //这里是通过将字符串中“-”拆分成一个数组里
NSMutableAttributedString *strP = [[NSMutableAttributedString alloc]initWithString:strUrl];
NSInteger rangeMin = 0;
int i = 0;
NSMutableArray *tempArr = trafficArr.mutableCopy;
[tempArr removeLastObject];
for (NSString *tempstr in tempArr) {
NSInteger tempStrLenth = tempstr.length;
rangeMin += tempStrLenth;
NSRange range = {rangeMin+i,1}; // 这里是遍历拆分好的数组中每一个字符串,从而得知要替换的“-”的下标位置
NSLog(@"range%lu , %d",(unsigned long)range.location, i);
[strP addAttribute:NSForegroundColorAttributeName value:[UIColor colorWithHexString:@"#23beae"] range:range];
[strP addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:20] range:range];
i++;
cell.traffic.attributedText = strP;
}
iOS 字符串与浮点型转换与精度问题
一般字符串转浮点型
NSString *str1 = @"123.12";
float strfloat1= [str floatValue];
ios字符串替换(ios字符串转数字)
float strfloat2=0.5;
NSString *str2 = [NSString stringWithFormat:@"%f",strfloat2];
这里在%f ,这里可以是 @".2f" 标识小数点后保留2位 以此类推
来看一下floatValue的定义:
如果这个字符串不是text类型 或者 不可扫描,就返回0 比如
这个能可以帮助你在接收端做很多处理,比如 :
一般来说这个转换类型在iOS开发中有两种情况
先说第一种,如果服务端一般字符串传递,在移动端转成浮点型
ios字符串替换(ios字符串转数字)
比如
我们按照精度截取就好 小数点后两位。
第二种,这种应用于textfield等输入框,设置数字键盘,只能输入数字和小数点。
建议转浮点型处理格式,也可以按照小数点按为处理。
ios 怎么替换字符串中的英文
NSString *content = @"test123";
NSRegularExpression *regularExpression = [NSRegularExpression regularExpressionWithPattern:@"[a-zA-Z]" options:0 error:nil];
content = [regularExpression stringByReplacingMatchesInString:content options:0 range:NSMakeRange(0, content.length) withTemplate:@"你要替换的内容"];
iOS 从服务器获取的字符串中含有 \n 不换行的问题
从服务器获取的字符串里含有 \n ,本意是为了换行,但是赋值给 label 去显示的时候却并没有换行。
收到的JSON字符串中实际是带有转义字符的,控制台打印出来是 \n ,实际却是 \\n 。所以我们需要替换获取到的字符串中的 \\n 为 \n 即可。
iOS 数据优化之处理HTML字符串
富文本转html字符串
字符串转富文本
最近项目遇到的问题,因为后台返回的数据是HTML字符串,所以就按照常规处理方式把HTML字符串转换成富文本的字符串来处理,事实证明,tableview会非常卡,并且造成线程阻塞,无法响应事件
解决方案1.首先我想到的是把耗时操作放在子线程来操作
解决方案2. 因为是cell展示,所以只需要展示文本信息就行,那就过滤掉HTML标签,瞬间解决所有问题。所以在列表展示数据的时候HTML转换NSAttributedString一定要慎用
下面简单介绍一下NSScanner
NSScanner是一个类,用于在字符串中扫描指定的字符,翻译成我们需要的字符串或者数字,核心就是位置的移动 即scanLocation的移动变化
在上面的方法中首先指明了要扫描的对象 html(NSString) NSString * text 很重要 把我们要扫描出来的字符串存到text里面
而这个扫描到的字符串就是>之前的字符串 scanUpToString这个方法的意思是将scanLocation停留在>之前 并把之前的字符串传给text。
回头来看看我们去除html标签的方法 整个过程都是在扫描过程中进行的NSScanner在执行scanUpToString这个方法时一旦扫描到需要的字符串比如例子中的“<”,其scanLocation就会变为html的初始位置。所以,要在执行完一次完整的扫描后 把html标签用空字符串替换掉,在进行下一次扫描,也就是说再while中 html字符串的标签字符会越来越少,而每次扫描的初始位置相对没有变化都停留在上一次扫描结束的位置,即"<"标签的前面。
参考链接----传送门
ios 怎么替换字符串中间部分
string.replace(str,"@@\","\\")就可以了
字符替换表 = {
["\"] = "\\";
["'"] = "<引号>";
["N"] = "n";
}
str = string.replace( "替换'这里的\N",".|:", 字符替换表 )
io.open();
io.print( str )
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, website.service08@gmail.com 举报,一经查实,本站将立刻删除。