在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
。
分享到:
相关推荐
需要注意的是,`Trim()`函数只会去除前后的空格,对于字符串内部的空格,它并不会做任何处理。 在VB中,除了`Trim()`函数,还有其他一些相关的字符串处理函数,例如`LTrim()`和`RTrim()`: - `LTrim()`函数用于...
`+`表示匹配一个或多个空格字符,这在去除连续空格时更为有效。在函数的定义中,返回值是通过`this.replace(reSpace,”$1″)`得到的,其中`reSpace`是一个事先定义好的正则表达式,用于匹配一个或多个空格字符,然后...
### JavaScript 获取URL参数和去除字符串前后空格的方法 在日常的Web开发中,经常会遇到需要获取URL中的参数或处理字符串的情况。例如,在用户点击某个链接或者表单提交后,我们可能需要从URL中提取出某些特定的...
4. **删除从字符串开头到第一个非空格字符之前的部分**:如果找到了非空格字符,则使用`erase`函数删除从字符串开头到该位置之前的部分。 5. **清空字符串**:如果字符串中没有非空格字符,则使用`erase`函数清空...
若要仅删除前导空格,我们可以先找到第一个非空格字符的位置,然后用“LEFT”函数截取字符串的这一部分。以下是一个更具体的示例: ```scl PROGRAM Main VAR inputString : STRING := " Hello, World!"; // 带前导...
"字符串去掉空格"这个主题,通常涉及到对字符串中的空白字符(包括空格、制表符、换行符等)进行删除或替换的操作。在C++中,可以使用多种方法来实现这一功能,而标签“CString操作”表明我们将关注使用MFC库中的...
在LabVIEW中,字符串通常以文本框(String Control)或字符串常量(String Constant)的形式存在。当你需要对字符串进行操作,如删除空格,可以使用各种字符串函数来实现。以下是一些关键步骤和知识点: 1. **字符...
在C#编程语言中,处理字符串是常见的任务之一,其中包括去除字符串中的空格。这个话题对于初学者和经验丰富的开发者都很重要,因为处理文本数据时,我们经常需要清理或格式化字符串,确保它们符合特定的需求。本文将...
在示例 1 中,我们首先创建了一个包含空格的字符串 `'G F G'`,然后通过 `find()` 与 `~isspace(String)` 结合,找到非空格字符的位置,从而构建一个新的无空格字符串。 ```matlab String = 'G F G'; New_String = ...
- 创建一个新的字符数组,遍历原字符串,遇到非空格字符时将其添加到新数组,遇到空格只保留第一个,其余忽略。最后将字符数组转换回字符串。 4. **使用Java 8的Stream API**: - 将字符串转换为字符流`Stream...
当第二个参数`is_global`为真时(字符串形式的`"g"`),函数会将所有空格字符替换为空字符串,否则只去除首尾空格。 在使用正则表达式去除空格时,需要注意正则表达式的`/g`标志,这表示全局匹配,即会匹配字符串中...
isend) { // 如果之前已经遇到过非空格字符,则添加当前空格 buffer.append(currentChar); } } } return buffer.reverse().toString(); // 需要反转结果,因为是从后向前添加的 } ``` #### 四、移除回车符 在...
本主题将详细探讨如何去除字符串中的特殊符号、多余空格以及首尾空格,并在中文与英文之间添加空格。 1. 去掉特殊符号 在Python中,可以使用`str.replace()`方法来替换字符串中的特定字符。例如,如果我们要移除`",...
这种实现方式简洁且高效,但需要注意的是,这种方法只适用于去除ASCII空格(空格字符' ',ASCII值32)。如果需要处理其他类型的空白字符,如制表符('\t')、换行符('\n')等,你需要在`find_first_not_of`和`find_...
在C++中,我们可以使用`std::string::find_last_not_of()`和`std::string::substr()`结合,或者使用`std::replace()`函数配合空格字符来移除空格。如果要删除特定类型的空格,需要手动处理。 在PHP中,`trim($str)`...
使用 SQL 语句去除、删除数据库中的空格、回车字符的方法 在处理数据时,经常会遇到用户从 Excel 复制数据到系统中的情况,这时数据中可能包含空格、回车字符等特殊字符,这些字符可能会导致查看数据或使用数据时...
"字符串去掉前后空格的网页源代码.zip"这个压缩包文件显然包含了用于去除字符串两端多余空格的代码示例,这对于保持文本数据的整洁性和正确性至关重要。在前端开发中,我们经常需要处理用户输入的数据,这些数据可能...
在编程领域,尤其是在使用C++、Java或C#等面向对象的语言时,经常需要将字符串数组转换为单一的string类型。这种操作在处理数据输入、输出或者格式化时非常常见。下面我们将详细讨论如何在不同语言中实现这个过程,...
字符串分割是一种将长字符串分解成多个子字符串的操作,这些子字符串由特定的分隔符(如空格或逗号)隔开。在各种编程语言中,都有内置的方法或函数来实现这个功能。例如,在Python中,我们可以使用`split()`函数来...
### Java去除字符串中的空格、回车、换行符、制表符的知识点详解 #### 一、背景介绍 在日常的软件开发过程中,我们经常需要处理来自各种来源的文本数据,例如用户输入、文件读取等。这些数据中常常会包含空格、...