39 lines
478 B
Go
39 lines
478 B
Go
package textfmt
|
|
|
|
import "strings"
|
|
|
|
func timesn(s string, n int) string {
|
|
ss := make([]string, n+1)
|
|
return strings.Join(ss, s)
|
|
}
|
|
|
|
func maxDigits(n int) int {
|
|
if n == 0 {
|
|
return 1
|
|
}
|
|
|
|
var d int
|
|
for n > 0 {
|
|
d++
|
|
n /= 10
|
|
}
|
|
|
|
return d
|
|
}
|
|
|
|
func maxLength(names []string) int {
|
|
var m int
|
|
for _, n := range names {
|
|
if len([]rune(n)) > m {
|
|
m = len([]rune(n))
|
|
}
|
|
}
|
|
|
|
return m
|
|
}
|
|
|
|
func padRight(s string, n int) string {
|
|
n -= len([]rune(s))
|
|
return s + timesn(" ", n)
|
|
}
|