比如一个字符串:

 NSString * hmutStr = @"(010)*(123)E6(234)**150-1111-^^-1234#"

很多时候,数据之间的传输,我们仅仅只想保留下字符串里面的数字和字母,其他的飞数字字母的符号都得过滤掉,过滤的方法有两种:

方法一:

替代发

使用stringByReplacingOccurrencesOfString这个方法将字符串里的非法字符逐个替代

具体代码如下:

hmutStr = [tempString stringByReplacingOccurrencesOfString:@" " withString:@""];
hmutStr = [tempString stringByReplacingOccurrencesOfString:@"#" withString:@""];
hmutStr = [tempString stringByReplacingOccurrencesOfString:@"*" withString:@""];
hmutStr = [tempString stringByReplacingOccurrencesOfString:@"+" withString:@""];
hmutStr = [tempString stringByReplacingOccurrencesOfString:@"-" withString:@""];

如果还有其他的字符就一次写入代码,进行过滤,比较繁琐,得写很多无用的代码,效率也不高!

方法二:

先将字符串按非法字符串集进行裁断,最后再拼接起来,代码看起来很直观,直接了断

具体代码如下:

NSCharacterSet *doNotWant = [NSCharacterSet characterSetWithCharactersInString:@"[]{}(#%-*+=_)\\|~(<>$%^&*)_+ "];
NSString * hmutStr = [[mutStr componentsSeparatedByCharactersInSet: doNotWant]componentsJoinedByString: @""]; NSLog(@"humStr is %@",hmutStr); return hmutStr;

在doNotWant这个字符集里想写几个就写几个,很方便,一个方法就搞定了,这样的话,字符串直接的传输,就很方便了!

分享一个公用方法:字典转json字符串,并直接过滤掉里面的非法字符

#pragma mark 字典转json
- (NSString*)dictionaryToJson:(NSDictionary *)dic
{
NSError *error; NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:&error]; NSString *jsonString; if (!jsonData) { NSLog(@"%@",error); }else{ jsonString = [[NSString alloc]initWithData:jsonData encoding:NSUTF8StringEncoding]; } NSMutableString *mutStr = [NSMutableString stringWithString:jsonString]; // NSRange range = {0,jsonString.length}; NSCharacterSet *doNotWant = [NSCharacterSet characterSetWithCharactersInString:@"[]{}(#%-*+=_)\\|~(<>$%^&*)_+ "];
NSString * hmutStr = [[mutStr componentsSeparatedByCharactersInSet: doNotWant]componentsJoinedByString: @""]; NSLog(@"humStr is %@",hmutStr); return hmutStr;
}

当然方法有很多种,如果大家有什么好的方法,还希望大家不吝指教!

json转化为字典:具体代码如下:

+ (NSDictionary *)dictionaryWithJsonString:(NSString *)jsonString
{
if (jsonString == nil) {
return nil;
} NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSError *err;
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:jsonData
options:NSJSONReadingMutableContainers
error:&err];
if(err)
{
NSLog(@"json解析失败:%@",err);
return nil;
}
return dic;
}

这个方法,我们在和后台调接口的时候,用的最多,这里只做记录用!

最新文章

  1. jQuery.lazyload
  2. PHP文件相关的操作函数——文件操作
  3. C#编程模式之扩展命令
  4. java DMO及增删改查代码的自动生成
  5. mysql规范
  6. 傅里叶:有关FFT,DFT与蝴蝶操作(转 重要!!!!重要!!!!真的很重要!!!!)
  7. C# 操作网页标签
  8. 【IBM】Merlin 给 Java 平台带来了非阻塞 I/O
  9. 学习OpenSeadragon之二 (界面缩放与平移规则设置)
  10. Linux学习之Shell编程基础
  11. poj 3101 Astronomy(分数的最小公倍数)
  12. Ajax 下拉加载数据
  13. python开发concurent.furtrue模块:concurent.furtrue的多进程与多线程&协程
  14. VC Edit控件单行垂直居中和定制外框的实现
  15. Python3之弹性力学——应力张量2
  16. Umbraco 资源推荐
  17. Linux开启root用户
  18. TOleControl(WebBrowser1).Visible := False 这样就可以隐藏浏览器控件
  19. 简单实现java线程池
  20. 浅谈 Boost.Asio 的多线程模型

热门文章

  1. Python-try except else finally有return时执行顺序探究
  2. int.TryParse非预期执行引发的思考 ASP.NET -- WebForm -- 给图片添加水印标记 Windows -- 使用批处理文件.bat删除旧文件
  3. CString中Format函数与格式输入与输出
  4. windows中mongoDB安装教程
  5. MS SQL表字段自增相关的脚本
  6. SQL2005数据库行列转换
  7. atitit.Atitit. Gui控件and面板-----服务端控件 java struts的实现最佳实践
  8. Atitit.Gui控件and面板----db数据库区----- .数据库比较同步工具 vOa
  9. [svc]jq神器使用
  10. android studio 使用问题记录