Foundation
में आप एक नियमित अभिव्यक्ति मिलान सूचकांक की सीमाओं मिल सकती है। आप subranges भी बदल सकते हैं। इस के संयोजन, हम पाते हैं:
import Foundation
extension String {
mutating func trimTrailingWhitespace() {
if let trailingWs = self.range(of: "\\s+$", options: .regularExpression) {
self.replaceSubrange(trailingWs, with: "")
}
}
}
अगर हम \s*
के खिलाफ मेल खाते हैं (जैसा कि मार्टिन आर पहली बार में किया था) हम if let
गार्ड को छोड़ सकते हैं:
import Foundation
extension String {
func trimTrailingWhitespace() -> String {
if let trailingWs = self.range(of: "\\s+$", options: .regularExpression) {
return self.replacingCharacters(in: trailingWs, with: "")
} else {
return self
}
}
}
आप भी इस का एक परिवर्तनशील संस्करण हो सकता है और बल को अनदेखा करें क्योंकि हमेशा एक मैच होगा। मुझे लगता है कि यह स्पष्ट है क्योंकि यह स्पष्ट रूप से सुरक्षित है, और अगर आप regexp बदलते हैं तो सुरक्षित रहता है। मैंने प्रदर्शन के बारे में नहीं सोचा था।
func removeTrailingSpaces(with spaces : String) -> String{
var spaceCount = 0
for characters in spaces.characters{
if characters == " "{
print("Space Encountered")
spaceCount = spaceCount + 1
}else{
break;
}
}
var finalString = ""
let duplicateString = spaces.replacingOccurrences(of: " ", with: "")
while spaceCount != 0 {
finalString = finalString + " "
spaceCount = spaceCount - 1
}
return (finalString + duplicateString)
}
आप निम्नलिखित तरीके से इस सुविधा का उपयोग कर सकते हैं::
संभावित डुप्लिकेट (http://stackoverflow.com/questions/41412161/swift-remove-only-trailing-spaces-from-string) – Hamish