как выровнять строку по правому краю? На данный момент я знаю, как выровнять строку по левому краю с помощью stringByPaddingToLength
. Любая идея для выравнивания по правому краю?
Swift, как выровнять строку по правому краю
Ответы (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))
}
}
}
person
Martin R
schedule
14.05.2016
stringByPaddingToLength
колодки уже справа. Ссылка, которой я поделился, объясняет, как сделать наоборот (добавить влево), используяstringByPaddingToLength
. - person ozgur   schedule 14.05.2016swiftpm install leftpad
- person jtbandes   schedule 14.05.2016