string - uso - tutorial indesign cc 2018 italiano




Come devo rimuovere tutti gli spazi iniziali da una stringa?-veloce (16)

Ho bisogno di un modo per rimuovere il primo carattere da una stringa che è uno spazio. Sto cercando un metodo o anche un'estensione per il tipo String che posso usare per ritagliare un carattere di una stringa.


Swift 4

Il caso eccellente per usare il regex:

" this is    wrong contained teee xt     "
    .replacingOccurrences(of: "^\\s+|\\s+|\\s+$", 
                          with: "", 
                          options: .regularExpression)

// thisiswrongcontainedteeext

Tagliare gli spazi bianchi in Swift 4

let strFirstName = txtFirstName.text?.trimmingCharacters(in: 
 CharacterSet.whitespaces)

Il modo corretto quando si desidera rimuovere tutti i tipi di spazi bianchi (in base a questa risposta SO ) è:

extension String {
    var stringByRemovingWhitespaces: String {
        let components = componentsSeparatedByCharactersInSet(.whitespaceCharacterSet())
        return components.joinWithSeparator("")
    }
}

Swift 3.0+ (3.0, 3.1, 3.2, 4.0)

extension String {
    func removingWhitespaces() -> String {
        return components(separatedBy: .whitespaces).joined()
    }
}

MODIFICARE

Questa risposta è stata pubblicata quando la domanda riguardava la rimozione di tutti gli spazi bianchi, la domanda è stata modificata per menzionare solo i principali spazi bianchi. Se desideri rimuovere solo gli spazi bianchi principali, utilizza quanto segue:

extension String {
    func removingLeadingSpaces() -> String {
        guard let index = firstIndex(where: { !CharacterSet(charactersIn: String($0)).isSubset(of: .whitespaces) }) else {
            return self
        }
        return String(self[index...])
    }
}

Per swift 3.0

import Foundation

var str = " Hear me calling"

extension String {
    var stringByRemovingWhitespaces: String {
        return components(separatedBy: .whitespaces).joined()
    }
}

str.stringByRemovingWhitespaces  // Hearmecalling

Per rimuovere spazi bianchi iniziali e finali:

let trimmedString = string.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet())

Swift 3 / Swift 4:

let trimmedString = string.trimmingCharacters(in: .whitespaces)

Prova la programmazione funzionale per rimuovere gli spazi bianchi:

extension String {
  func whiteSpacesRemoved() -> String {
    return self.filter { $0 != Character(" ") }
  }
}

Questa estensione String rimuove tutto lo spazio bianco da una stringa, non solo lo spazio bianco finale ...

 extension String {
    func replace(string:String, replacement:String) -> String {
        return self.replacingOccurrences(of: string, with: replacement, options: NSString.CompareOptions.literal, range: nil)
    }

    func removeWhitespace() -> String {
        return self.replace(string: " ", replacement: "")
    }
  }

Esempio:

let string = "The quick brown dog jumps over the foxy lady."
let result = string.removeWhitespace() // Thequickbrowndogjumpsoverthefoxylady.

Se qualcuno rimuove lo spazio aggiuntivo dalla stringa, ad esempio = "This is the demo text remove extra space between the words."

È possibile utilizzare questa funzione in Swift 4.

func removeSpace(_ string: String) -> String{
    var str: String = String(string[string.startIndex])
    for (index,value) in string.enumerated(){
        if index > 0{
            let indexBefore = string.index(before: String.Index.init(encodedOffset: index))
            if value == " " && string[indexBefore] == " "{
            }else{
                str.append(value)
            }
        }
    }
    return str
}

e il risultato sarà

"This is the demo text remove extra space between the words."

Userei questa estensione, per essere flessibile e imitare il modo in cui lo fanno altre collezioni:

extension String {
    func filter(pred: Character -> Bool) -> String {
        var res = String()
        for c in self.characters {
            if pred(c) {
                res.append(c)
            }
        }
        return res
    }
}

"this is a String".filter { $0 != Character(" ") } // "thisisaString"

Versione Swift 3

  //This function trim only white space:
   func trim() -> String
        {
            return self.trimmingCharacters(in: CharacterSet.whitespaces)
        }
    //This function trim whitespeaces and new line that you enter:
     func trimWhiteSpaceAndNewLine() -> String
        {
            return self.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines)
        }

Per rimuovere tutti gli spazi dalla stringa:

 let space_removed_string = (yourstring?.components(separatedBy: " ").joined(separator: ""))! 

Puoi provare anche questo

   let updatedString = searchedText?.stringByReplacingOccurrencesOfString(" ", withString: "-")

Swift 4, 4.2 e 5

Rimuovere lo spazio solo dalla parte anteriore e finale

let result = String(yourString.filter {![" ", "\t", "\n"].contains($0)})

Rimuovi gli spazi da ogni punto della stringa

let inputString = "  a very     strange   text !    "
let validInput = inputString.components(separatedBy:.whitespacesAndNewlines).filter { $0.count > 0 }.joined(separator: " ")

print(validInput) // "a very strange text !"

Versione Swift 3 della risposta di BadmintonCat

let space_removed_string = (yourstring?.components(separatedBy: " ").joined(separator: ""))!

extension String {

    var removingWhitespaceAndNewLines: String {
        return removing(.whitespacesAndNewlines)
    }

    func removing(_ forbiddenCharacters: CharacterSet) -> String {
        return String(unicodeScalars.filter({ !forbiddenCharacters.contains($0) }))
    }
}

 class SpaceRemover { func SpaceRemover(str :String)->String { var array = Array(str) var i = array.count while(array.last == " ") { var array1 = [Character]() for item in 0...i - 1 { array1.append(array[item]) } i = i - 1 array = array1 print(array1) print(array) } var arraySecond = array var j = arraySecond.count while(arraySecond.first == " ") { var array2 = [Character]() if j > 1 { for item in 1..<j { array2.append(arraySecond[item]) } } j = j - 1 arraySecond = array2 print(array2) print(arraySecond) } print(arraySecond) return String(arraySecond) } } 




swift