In Swift 3 è possibile utilizzare:
let str = "Test string"
let paddedStr = str.padding(toLength: 20, withPad: " ", startingAt: 0)
stringa Risultato: "Test string "
Se avete bisogno di pad a sinistra, il testo (a destra giustificare), è possibile scrivere il seguente funzione come estensione a String
:
extension String {
func leftPadding(toLength: Int, withPad character: Character) -> String {
let newLength = self.characters.count
if newLength < toLength {
return String(repeatElement(character, count: toLength - newLength)) + self
} else {
return self.substring(from: index(self.startIndex, offsetBy: newLength - toLength))
}
}
}
Quindi, se si scrive: stringa
let str = "Test string"
let paddedStr = str.leftPadding(toLength: 20, withPad: " ")
Risultato: " Test string"
In Swift 4 il metodo substring
è deprecato e ci sono un certo numero di nuovi metodi per ottenere una stringa. O prefix
, suffix
o sottoscrizione dello String
con un Range<String.Index>
.
Per l'estensione precedente, è possibile utilizzare il metodo suffix
per ottenere lo stesso risultato. Poiché il metodo suffix
restituisce un valore String.SubSequence
, è necessario convertirlo in String
prima di essere restituito.
extension String {
func leftPadding(toLength: Int, withPad character: Character) -> String {
let stringLength = self.characters.count
if stringLength < toLength {
return String(repeatElement(character, count: toLength - stringLength)) + self
} else {
return String(self.suffix(toLength))
}
}
}
Per aggiungere padding a sinistra, dobbiamo scrivere il nostro codice, estensione String { func PadLeft (totalWidth: Int, byString: String) -> String { lasciare toPad = totalWidth - auto.. characters.count; se toPad <1 { return self; } return "" .stringByPaddingToLength (toPad, withString: byString, startingAtIndex: 0) + self; } } –