Swift, как сделать строку выровненной вправо
Как сделать строку выровненной вправо? На данный момент я знаю, как выровнять строку по левому краю, используя stringByPaddingToLength
, Любая идея для выравнивания вправо?
1 ответ
Возможная реализация (пояснения в строке):
extension String {
func stringByLeftPaddingToLength(newLength : Int) -> String {
let length = self.characters.count
if length < newLength {
// Prepend `newLength - length` space characters:
return String(count: newLength - length, repeatedValue: Character(" ")) + self
} else {
// Truncate to the rightmost `newLength` characters:
return self.substringFromIndex(startIndex.advancedBy(length - newLength))
}
}
}
Пример использования:
let s = "foo"
let padded = s.stringByLeftPaddingToLength(6)
print(">" + padded + "<")
// > foo<
Обновление для Swift 3:
extension String {
func stringByLeftPaddingTo(length newLength : Int) -> String {
let length = self.characters.count
if length < newLength {
// Prepend `newLength - length` space characters:
return String(repeating: " ", count: newLength - length) + self
} else {
// Truncate to the rightmost `newLength` characters:
return self.substring(from: self.index(endIndex, offsetBy: -newLength))
}
}
}