从NSString的末尾修剪空格

And*_*ino 365 whitespace trim nsstring

我需要从字符串的末尾删除空格.我怎样才能做到这一点?示例:如果字符串"Hello "必须成为"Hello"

Dan*_*Dan 897

使用-stringByTrimmingCharactersInSet:

- (NSString *)stringByTrimmingTrailingCharactersInSet:(NSCharacterSet *)characterSet {
    NSRange rangeOfLastWantedCharacter = [self rangeOfCharacterFromSet:[characterSet invertedSet]
                                                               options:NSBackwardsSearch];
    if (rangeOfLastWantedCharacter.location == NSNotFound) {
        return @"";
    }
    return [self substringToIndex:rangeOfLastWantedCharacter.location+1]; // non-inclusive
}
Run Code Online (Sandbox Code Playgroud)

(这将修剪两端的空白字符).

斯威夫特3

- (NSString *)stringByTrimmingTrailingCharactersInSet:(NSCharacterSet *)characterSet {
    NSRange rangeOfLastWantedCharacter = [self rangeOfCharacterFromSet:[characterSet invertedSet]
                                                               options:NSBackwardsSearch];
    if (rangeOfLastWantedCharacter.location == NSNotFound) {
        return @"";
    }
    return [self substringToIndex:rangeOfLastWantedCharacter.location+1]; // non-inclusive
}
Run Code Online (Sandbox Code Playgroud)

  • 要在字符集中包含换行符,请使用`whitespaceAndNewlineCharacterSet`. (156认同)
  • 我不明白如何回答这个问题得到如此多的赞成.您的解决方案也会删除字符串开头的空格,这不是要求的内容. (10认同)
  • 只需注意一点:此方法可从两端移除空白区域.它不会从字符串内部删除空格. (9认同)
  • @JamesBoutcher得到这么多赞成票的原因是我们在这里寻找Google中的"trim NSString",这是该问题的正确答案.OP确实要求其他东西. (4认同)

Mat*_* H. 20

另一个解决方案是创建可变字符串:

//make mutable string
NSMutableString *stringToTrim = [@" i needz trim " mutableCopy];

//pass it by reference to CFStringTrimSpace
CFStringTrimWhiteSpace((__bridge CFMutableStringRef) stringToTrim);

//stringToTrim is now "i needz trim"
Run Code Online (Sandbox Code Playgroud)

  • 你的意思是:Sinze it iz correct,letz vote. (10认同)

小智 12

干得好...

- (NSString *)removeEndSpaceFrom:(NSString *)strtoremove{
    NSUInteger location = 0;
    unichar charBuffer[[strtoremove length]];
    [strtoremove getCharacters:charBuffer];
    int i = 0;
    for(i = [strtoremove length]; i >0; i--) {
        NSCharacterSet* charSet = [NSCharacterSet whitespaceCharacterSet];
        if(![charSet characterIsMember:charBuffer[i - 1]]) {
            break;
        }
    }
    return [strtoremove substringWithRange:NSMakeRange(location, i  - location)];
}
Run Code Online (Sandbox Code Playgroud)

所以现在就叫它吧.假设你有一个字符串,前面有空格,末尾有空格,你只想删除末尾的空格,你可以像这样调用它:

NSString *oneTwoThree = @"  TestString   ";
NSString *resultString;
resultString = [self removeEndSpaceFrom:oneTwoThree];
Run Code Online (Sandbox Code Playgroud)

resultString 然后在最后没有空格.


los*_*hua 8

要从Swift中的字符串的开头和结尾删除空格:

斯威夫特3

string.trimmingCharacters(in: .whitespacesAndNewlines)
Run Code Online (Sandbox Code Playgroud)

以前的Swift版本

string.stringByTrimmingCharactersInSet(.whitespaceAndNewlineCharacterSet()))
Run Code Online (Sandbox Code Playgroud)


g21*_*2gs 6

NSString *trimmedString = [string stringByTrimmingCharactersInSet:
                              [NSCharacterSet whitespaceAndNewlineCharacterSet]];
//for remove whitespace and new line character

NSString *trimmedString = [string stringByTrimmingCharactersInSet:
                              [NSCharacterSet punctuationCharacterSet]]; 
//for remove characters in punctuation category
Run Code Online (Sandbox Code Playgroud)

还有许多其他的字符集。根据您的要求自己检查。