簡體   English   中英

刪除字符串開頭和結尾的空格

[英]removing white spaces at beginning and end of string

我在刪除字符串開頭和結尾的空格時遇到了問題。 例如,我有一個字符串:

\\r\\n\\t- Someone will come here?\\n- I don't know for sure...\\r\\n\\r\\n

而我需要在年底將空格和開頭(字符串應該是什么樣子: - Someone will come here?\\n- I don't know for sure...也有可能是一個很大的字符串末尾的變種: "\\r\\n\\r\\n"、"\\r\\n"、"\\n\\r\\n" 等等...

謝謝。

您的字符串不僅包含空格,而且還包含換行符。

stringByTrimmingCharactersInSetwhitespaceAndNewlineCharacterSet stringByTrimmingCharactersInSet使用。

let string = "\r\n\t- Someone will come here?\n- I don't know for sure...\r\n\r\n"
let trimmedString = string.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())

在Swift 3中,它更易於清理

let trimmedString = string.trimmingCharacters(in: .whitespacesAndNewlines)
//here i have used regular expression and replaced white spaces at the start and end
      let stringPassing : NSString? = "hdfjkhsdj hfjksdhf sdf "
      do {
        print("old->\(stringPassing)")
        let pattern : String = "(^\\s+)|(\\s+)$"
        let regex = try NSRegularExpression(pattern: pattern , options: [])
        let newMatched = regex.matchesInString(stringPassing! as String, options: [], range: NSMakeRange(0,stringPassing!.length))
        if(newMatched.count > 0){

          let modifiedString = regex.stringByReplacingMatchesInString(stringPassing! as String, options: [] , range: NSMakeRange(0,stringPassing!.length), withTemplate: "")
              print("new->\(modifiedString)")
        }

    } catch let error as NSError {
        print(error.localizedDescription)
    }

Swift 4+中的字符串修剪首尾空格和換行符

"  2 space  ".trimmingCharacters(in: .whitespacesAndNewlines)

結果:“ 2個空格”

您可以使用此擴展名,而只需調用“ yourString” .trim()

extension String
{
    func trim() -> String
    {
        return self.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
    }
}

如果您想從字符串的開頭刪除空格,請嘗試使用此代碼。

func removeSpace()->String{
    let txt = myString
    var count:Int! = 0
    for i in txt{
        if i  == " "{
            count += 1
        }else{
            if count != 0{
                return String(txt.dropFirst(count))
            }else{
                return txt
            }
        }
    }
    return ""
}

`

從字符串的開頭刪除所有空格

func removeWhiteSpaces(str:String) -> String{
    var newStr = str
    for i in 0..<str.count{
        let index = str.index(str.startIndex, offsetBy: i)
        print(str[index])
        if str[index] != " "{
            return newStr
        }
        else{
            newStr.remove(at: newStr.startIndex)
        }
    }
    return newStr
}

在此代碼中限制Textfield開頭的空白

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
        if (textField.text?.count)! == 0 && string == " " {
            return false
        }
        else{
            return true
        }
    }

在Swift 4中 ,可在任何String類型變量上使用它。

extension String {
    func trimWhiteSpaces() -> String {
        let whiteSpaceSet = NSCharacterSet.whitespaces
        return self.trimmingCharacters(in: whiteSpaceSet)
    }
}

並這樣稱呼它

yourString.trimWhiteSpaces()

您可以先從開頭刪除,然后從結尾刪除,如下所示:

while true {
if sentence.characters.first == "\r\n" || sentence.characters.first == "\n" {
    sentence.removeAtIndex(sentence.startIndex)
} else {
    break
}
}

while true {
if sentence.characters.last == "\r\n" || sentence.characters.last == "\n" {
    sentence.removeAtIndex(sentence.endIndex.predecessor())
} else {
    break
}
}

讓string =“考試ple”

let trimmed = string.replacingOccurrences(of:“(^ \\ s +)|(\\ s +)$”,其中:“”,選項:.regularExpression)

打印(“>” + trimmed3 +“ <”)

//打印> exam ple <

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM