在objective-c中,如何去掉一个string
的前后的空格字符或某个特定字符呢?
如@
“ abc 123
”字符串前后有空格,该如何去掉?
使用nsstring
的实例方法stringByTrimmingCharactersInSet
:可以解决该问题。
方法如下:
[@" abc 123 " stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
NSString *newString = [oldString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
NSString
中该方法说明如下:
stringByTrimmingCharactersInSet:
Returns a new string made by removing from both ends
of the receiver characters contained in a given character set.
- (NSString *)stringByTrimmingCharactersInSet:(NSCharacterSet
*)set
Parameters
set
A character set containing the characters to remove
from the receiver. set
must not be
nil
.
Return Value
A new string made by removing from both ends of the
receiver characters contained in set
. If the receiver is composed
entirely of characters from set
, the empty string is returned.
(miki西游 @mikixiyou 原文链接: http://mikixiyou.iteye.com/blog/1623323
)
这是典型的其他语言中trim
方法。我要问的是,如何去掉最左边的空格?又该如何去掉最右边的空格?
在NSString
的类中没有提供实现这类需求的方法,我们只能手工去添加这些方法。
@interface NSString (TrimmingAdditions)
- (NSString *)stringByTrimmingLeftCharactersInSet:(NSCharacterSet *)characterSet ;
- (NSString *)stringByTrimmingRightCharactersInSet:(NSCharacterSet *)characterSet ;
@end
@implementation NSString (TrimmingAdditions)
- (NSString *)stringByTrimmingLeftCharactersInSet:(NSCharacterSet *)characterSet {
NSUInteger location = 0;
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 = 0;
NSUInteger length = [self length];
unichar charBuffer[length];
[self getCharacters:charBuffer];
for (length; length > 0; length--) {
if (![characterSet characterIsMember:charBuffer[length - 1]]) {
break;
}
}
return [self substringWithRange:NSMakeRange(location, length - location)];
}
@end
使用stringByTrimmingRightCharactersInSet
方法去掉一个字符串最右边的空格。
NSLog(@"%@",[@"abc 123 " stringByTrimmingRightCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]);
如何去掉一个字符串@
“0.012300
”最右边的“0
“呢?这是典型的float
格式化成字符串以后的形式,显示时最好去掉最右边的“0
”。
解决方法如下:
[@"0.012300" stringByTrimmingRightCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"0"]];
在NSString
中trim
字符时,不理解为何不提供分别去掉左右字符的方法,如其他语言的ltrim
和rtim
。
分享到:
相关推荐
在前台应用进我们经常会碰到要删除用户输入的字符中的空格的问题,下面我们来介绍一下javascript中使用正则表达式实现删除字符串中的空格方法
String.trim()Js里面给String添加trim()方法,实现去掉字符串两边空格String.trim()Js里面给String添加trim()方法,实现去掉字符串两边空格String.trim()Js里面给String添加trim()方法,实现去掉字符串两边...
主要介绍了为Javascript中的String对象添加去除左右空格的方法(示例代码)。需要的朋友可以过来参考下,希望对大家有所帮助
Trim Trim(string) 将字符串前后的空格去掉 Ltrim Ltrim(string) 将字符串前面的空格去掉 Rtrim Rtrim(string) 将字符串后面的空格去掉 Mid Mid(string,start,length) 从string字符串的start字符开始取得length...
学习C++必经之路,入门级知识总结,笔记本知识概况,走一步再走一步
已知一个字符串的长度,剔除其中所有的空格字符。请从字符串最后一个字符开始逐个向前判断、并进行处理。
主要介绍了c++ String去除头尾空格的方法,非常具有实用价值,需要的朋友可以参考下
本文实例汇总了C++常用字符串分割方法,分享给大家供大家参考。具体分析如下: 我们在编程的时候经常会碰到字符串分割的问题,这里总结下,也方便我们以后查询使用。 一、用strtok函数进行字符串分割 原型: char *...
TrimTrim(string)将字符串前后的空格去掉 LtrimLtrim(string)将字符串前面的空格去掉 RtrimRtrim(string)将字符串后面的空格去掉 MidMid(string,start,length)从string字符串的start字符开始取得length长度的字符...
当我们进行一些页面编辑时,字符串前后的空格,通常是无效的。因此需要在获取信息时,进行过滤。 比如: 输入:[空格][空格]a[空格]b[空格][空格][空格] 得到:a[空格]b 代码如下: 去掉前面的空格 function ...
西门子1500PLC SCL语句删除字符串前面空格
3种删除字符串string中空格的方法 1、C风格 2、STL算法 3、ctype
在C#语言程序开发过程中,很多时候需要对字符串对象的前后空格进行去除,此时就需要使用到Trim()方法来实现这个功能,Trim()方法可以快速去除字符串前端和后端的所有空格。 例如有个字符: string str=” Abc ...
Trim Trim(string) 将字符串前后的空格去掉 Ltrim Ltrim(string) 将字符串前面的空格去掉 Rtrim Rtrim(string) 将字符串后面的空格去掉 Mid Mid(string,start,length) 从string字符串的start字符开始取得length...
判断字符串是否为“空”字符即用户输入了空格 var strings = ' '; if (strings.replace(/(^s*)|(s*$)/g, ).length ==0) { alert('不能为空'); } 判断输入字符串是否为空或者全部都是空格 function is...
最近学习js的时候发现的这个函数,这样很方便地去除前后空格,用正则实现,简单方便。下面软件开发网小编就为大家分享一下几种实现方式。 String.Prototype.trim() trim()返回一个字符串两端空白字符被删除的新字符...
JAVA中String 有trim()方法去除字符串左右的空格,js中自定义trim方法,去除字符串左右的杂质,可以去除逗号、句号、空格等等特殊字符。
//去掉左边的空白 function trimLeft(s){ if(s == null) { return ""; } var whitespace = new String(" \t\n\r"); var str = new String(s); if (whitespace.indexOf(str.charAt(0)) != -1) { var j=0, i = ...
本文实例讲述了C#清除字符串内空格的方法,分享给大家供大家参考。具体如下: 关键代码如下: 代码如下:/// /// 清除字符串内空格 /// /// ”str”>需要处理的字符串 /// 处理好后的字符串 public static string ...