我需要从字符串的末尾删除空格。我该怎么做呢? 示例:如果字符串是“Hello”,它必须变成“Hello”


当前回答

let string = "测试修剪过的字符串"

对于删除空白和新行使用以下代码:-

let str_trim = yourString。trimmingCharacters (.whitespacesAndNewlines):

对于仅从字符串中删除空格使用以下代码:-

let str_trim = yourString。trimmingCharacters (.whitespaces):

其他回答

斯威夫特版本

只修整字符串末尾的空格:

private func removingSpacesAtTheEndOfAString(var str: String) -> String {
    var i: Int = countElements(str) - 1, j: Int = i

    while(i >= 0 && str[advance(str.startIndex, i)] == " ") {
        --i
    }

    return str.substringWithRange(Range<String.Index>(start: str.startIndex, end: advance(str.endIndex, -(j - i))))
}

修整字符串两侧的空格:

var str: String = " Yolo "
var trimmedStr: String = str.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet())

从这里的答案来看:https://stackoverflow.com/a/5691567/251012

- (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
}

这将只删除您选择的尾随字符。

func trimRight(theString: String, charSet: NSCharacterSet) -> String {

    var newString = theString

    while String(newString.characters.last).rangeOfCharacterFromSet(charSet) != nil {
        newString = String(newString.characters.dropLast())
    }

    return newString
}

要修剪所有尾随的空格字符(我猜这实际上是你的意图),下面是一种相当干净简洁的方法。

斯威夫特5:

let trimmedString = string.replacingOccurrences(of: "\\s+$", with: "", options: .regularExpression)

objective - c:

NSString *trimmedString = [string stringByReplacingOccurrencesOfString:@"\\s+$" withString:@"" options:NSRegularExpressionSearch range:NSMakeRange(0, string.length)];

一行,加上一段正则表达式。

在斯威夫特

从字符串的两侧修剪空格和换行:

var url: String = "\n   http://example.com/xyz.mp4   "
var trimmedUrl: String = url.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())