去空格 whitespaceAndNewlineCharacterSet和过滤字符串
一、过滤字符串
可以使用stringByTrimmingCharactersInSet函数过滤字符串中的特殊符号
首先自己定义一个NSCharacterSet, 包含需要去除的特殊符号
NSCharacterSet *set = [NSCharacterSet characterSetWithCharactersInString:@"@/:;()¥「」"、[]{}#%-*+=_//|~<>$€^•'@#$%^&*()_+'/"""]; 由于NSString中有全角符号和半角符号, 因此有些符号要包括全角和半角的 然后调用stringByTrimmingCharactersInSet NSString *trimmedString = [string stringByTrimmingCharactersInSet:set]; trimmedString就是过滤后的字符串
二、去除空格
1.去掉两端的空格
[str stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]
2.去掉多余的空格
NSString *str = @" this is a test . "; NSCharacterSet *whitespaces = [NSCharacterSet whitespaceCharacterSet];
NSPredicate *noEmptyStrings = [NSPredicate predicateWithFormat:@"SELF != ''"]; NSArray *parts = [str componentsSeparatedByCharactersInSet:whitespaces];
NSArray *filteredArray = [parts filteredArrayUsingPredicate:noEmptyStrings];
str = [filteredArray componentsJoinedByString:@" "];
3.去掉所有空格
[str stringByReplacingOccurrencesOfString:@" " withString:@""]
4.去掉最左边的空格 和 去掉最右边的空格
@interface NSString (TrimmingAdditions)
- (NSString *)stringByTrimmingLeftCharactersInSet:(NSCharacterSet *)characterSet ;
- (NSString *)stringByTrimmingRightCharactersInSet:(NSCharacterSet *)characterSet ;
@end @implementation NSString (TrimmingAdditions) - (NSString *)stringByTrimmingLeftCharactersInSet:(NSCharacterSet *)characterSet {
NSUInteger location = ;
NSUInteger length = [self length];
unichar charBuffer[length];
[self getCharacters:charBuffer]; for (location; location < length; location++) {
if (![characterSet characterIsMember:charBuffer[location]]) {
break;
}
} return [self substringWithRange:NSMakeRange(location, length - location)];
} - (NSString *)stringByTrimmingRightCharactersInSet:(NSCharacterSet *)characterSet {
NSUInteger location = ;
NSUInteger length = [self length];
unichar charBuffer[length];
[self getCharacters:charBuffer]; for (length; length > ; length--) {
if (![characterSet characterIsMember:charBuffer[length - ]]) {
break;
}
} return [self substringWithRange:NSMakeRange(location, length - location)];
} @end
例如:NSLog(@"%@",[@"abc 123 " stringByTrimmingRightCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]);
:NSLog(@"%@",[@"0.012300" stringByTrimmingRightCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"0"]]);
一个非常好的例子,来源于http://nshipster.com/nscharacterset/, 去掉多余的空格(包括两端的和中间的)
NSString *exampleStr = @" My name is Johnny!";
exampleStr = [exampleStr stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
NSArray *exampleArr = [exampleStr componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self <> ''"];
exampleArr = [exampleArr filteredArrayUsingPredicate:predicate];
exampleStr = [exampleArr componentsJoinedByString:@" "];
去空格 whitespaceAndNewlineCharacterSet和过滤字符串的更多相关文章
- 去空格 whitespaceAndNewlineCharacterSet
http://blog.csdn.net/worn_nest/article/details/10155495
- linux makefile字符串操作函数 替换subst、模式替换patsubst、去首尾空格strip、查找字符串findstring、过滤filter、反过滤filter-out、排序函数sort、取单词word、取单词串wordlist、个数统计words
1.1 字符操作函数使用 在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能.make所支持的函数也不算很多,不过已经足够我们的操作了.函数调用后,函 ...
- javascript 过滤字符串中的中文与空格
js 如何过滤字符串里中文或空格呢?方法有很多种,我们可以使用替换与正则表达式来实现,本文向大家介绍两个简单的例子,感兴趣的码农可以参考一下. 1.javascript过滤空格: function m ...
- javascript 字符串去空格
1.正则去空格 a.去掉字符串中所有空格 " hello world ".replace(/\s+/g,"");//helloworld b.去掉字符串左边空格 ...
- DB中字段为null,为空,为空字符串,为空格要怎么过滤取出有效值
比如要求取出微信绑定的,没有解绑的 未绑定,指定字段为null 绑定的,指定字段为某个字符串 解绑的,有的客户用的是更新指定字段为1,有的客户更新指定字段为‘1’ 脏数据的存在,比如该字段为空字符 ...
- 【SQL】字符串去空格解决方法
一.表中字符串带空格的原因 1,空格就是空格. 2,控制符 显示为 空格. 二.解决方法 第一种情况,去空格的处理的比较简单,Replace(column,' ','') 就可以解决. 第二种情况,解 ...
- Foundation框架的一些实用方法:替换字符串,去空格,反转
//定义一个可变字符串, Format后面可以跟字符串类型,也可以传入C语言的字符串数组 NSMutableString *str = [NSMutableString stringWithForma ...
- String字符串操作--切割,截取,替换,查找,比较,去空格.....
字符串拼接 直接用+号:String a = "I"; String b = "love"; String c = "you";String ...
- ORACLE对字符串去空格处理(trim)
首先便是这Trim函数.Trim 函数具有删除任意指定字符的功能,而去除字符串首尾空格则是trim函数被使用频率最高的一种.语法Trim ( string ) ,参数string:string类型,指 ...
随机推荐
- windows下git识别大小写配置
默认情况下windows上的Git客户端,在文件名仅发生大小写改变时不会识别,提交后发现,gitlab上的文件名不会发生变化. 解决方法: 编辑 .git 中的config文件, 将 ignoreca ...
- 会话状态已创建一个会话 ID,但由于响应已被应用程序刷新而无法保存它
解决方法是新建 全局应用程序类 Global.asax 在 Session_Start 函数中 添加 string sessionId = Session.SessionID; protected v ...
- HBase的伪分布式安装(原创)
准备工作: 1)安装了伪分布式hadoop:参照http://blog.csdn.net/zolalad/article/details/11472207 2)修改已安装好的hadoop配置文件: a ...
- IDEA springMVC - hello world
记录所学,防忘记... ide用IDEA,用maven管理依赖包 1.建立一个maven-webapp项目:File->New->Project 2.pom.xml <project ...
- Hello mybatis
idea玩mybatis,终于搞出个hello mybatis.记录下过程,备忘. 1.person表 CREATE TABLE `person` ( `id` ) NOT NULL AUTO_INC ...
- 磁盘阵列(RAID)实例
raid技术分类可以分为基于软件raid技术和基于硬件raid技术 raid又分为raid-0.raid-1.raid-5和raid-10 Raid有”廉价磁盘冗余阵列”的意思,就是利用多块廉价的硬盘 ...
- java MAVEN 项目出现红叉
pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w ...
- Sublime Text 3 配置Java开发
Sublime Text 3 配置Java开发 内嵌模式 在Sublime内部输出面板显示执行过程 配置JavaC - INSET.sublime-build 打开Sublime的包目录(选择菜单:P ...
- Install Shield 打包教程
我的是已经下载过打包工具InstallShield2013LimitedEdition,没有下载的只有下面那个灰色的的图标,不过没关系选中灰色的点确定直接跳到下载页面了.下载完成后再重新添加安装和部署 ...
- 5.2视图中的Order by
创建排序视图的企图本身就是错误的,因为视图表示一个表,而表是不会对行排序的: