Skip to content

Instantly share code, notes, and snippets.

@tkafka
Created April 27, 2021 17:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tkafka/705437a358188e55076a0e4799131231 to your computer and use it in GitHub Desktop.
Save tkafka/705437a358188e55076a0e4799131231 to your computer and use it in GitHub Desktop.
extension String {
func padding(leftTo paddedLength: Int, withPad pad: String = " ", startingAt padStart: Int = 0) -> String
{
if count < paddedLength {
let rightPadded = padding(toLength: max(count, paddedLength), withPad: pad, startingAt: padStart)
return "".padding(toLength: paddedLength, withPad: rightPadded, startingAt: count % paddedLength)
} else {
return self
}
}
func padding(rightTo paddedLength: Int, withPad pad: String = " ", startingAt padStart: Int = 0) -> String
{
if count < paddedLength {
return padding(toLength: paddedLength, withPad: pad, startingAt: padStart)
} else {
return self
}
}
func padding(sidesTo paddedLength: Int, withPad pad: String = " ", startingAt padStart: Int = 0) -> String
{
if count < paddedLength {
let rightPadded = padding(toLength: max(count, paddedLength), withPad: pad, startingAt: padStart)
return "".padding(toLength: paddedLength, withPad: rightPadded, startingAt: (paddedLength + count) / 2 % paddedLength)
} else {
return self
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment