文字列のセンタリング
Posted feedbacks - Smalltalk
Squeak Smalltalk で。
1 2 3 4 5 6 7 8 9 10 11 12 13 | | centeredOf |
centeredOf := [:line :width |
| size offset centered start end delta |
size := line size.
delta := (width - size + 1) // 2.
offset := (delta min: 0) negated + 1.
start := (delta max: 0) + 1.
end := delta + size min: width.
centered := String new: width withAll: Character space.
centered replaceFrom: start to: end with: line startingAt: offset].
centeredOf value: '123456789' value: 15. "=> ' 123456789 ' "
centeredOf value: '123456789' value: 5. "=> '34567' "
|


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