我需要从字符串的末尾删除空格。我该怎么做呢? 示例:如果字符串是“Hello”,它必须变成“Hello”
当前回答
在Swift中删除字符串开头和结尾的空格:
斯威夫特3
string.trimmingCharacters(in: .whitespacesAndNewlines)
Swift以前的版本
string.stringByTrimmingCharactersInSet(.whitespaceAndNewlineCharacterSet()))
其他回答
要修剪所有尾随的空格字符(我猜这实际上是你的意图),下面是一种相当干净简洁的方法。
斯威夫特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)];
一行,加上一段正则表达式。
我想出了这个函数,它的行为基本类似于Alex的答案:
-(NSString*)trimLastSpace:(NSString*)str{
int i = str.length - 1;
for (; i >= 0 && [str characterAtIndex:i] == ' '; i--);
return [str substringToIndex:i + 1];
}
whitespaceCharacterSet除了空格本身还包括制表符,在我的情况下不能出现。所以我想一个简单的比较就足够了。
斯威夫特版本
只修整字符串末尾的空格:
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())
另一个解决方案涉及创建可变字符串:
//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"
let string = "测试修剪过的字符串"
对于删除空白和新行使用以下代码:-
let str_trim = yourString。trimmingCharacters (.whitespacesAndNewlines):
对于仅从字符串中删除空格使用以下代码:-
let str_trim = yourString。trimmingCharacters (.whitespaces):