文字列のセンタリング
Posted feedbacks - Emacs Lisp
Emacs Lisp 実行結果: (string-centering "abc" 0) "" (string-centering "abc" 1) "b" (string-centering "abc" 2) "ab" (string-centering "abc" 3) "abc" (string-centering "abc" 4) "abc " (string-centering "abc" 5) " abc " (string-centering "abc" 6) " abc " (string-centering "abc" 7) " abc "
1 2 3 4 5 6 7 8 | (defun string-centering (s c)
(let ((p (lambda (k) (make-string k ? )))
(d (- c (length s))))
(let ((n (/ d 2))
(m (% d 2)))
(if (>= d 0)
(concat (funcall p n) s (funcall p (+ n m)))
(substring s (abs n) (- (length s) (abs (+ n m))))))))
|



nobsun
#4089()
Rating0/2=0.00
文字列を指定のカラム幅にセンタリング配置する関数を示してください。文字列の長さが指定した幅より長い場合には文字列の両端をできるだけ均等に切り落して指定幅に収めてください。1文字は1カラムに収まるものと仮定してかまいません。
[ reply ]