dポイントプレゼントキャンペーン実施中!

rubyを使ってグラフを作ろうと思っています。
timesを使って、指定した回数分だけ罫線「━」で横に棒グラフを表示するという簡単なものです。
たとえば、
4.times{
print "━"
}
と書いて、「━━━━」という風に表示させたいのですが、
実際にやってみると「━ ━ ━ ━」という風に、半角スペースほどの空白が━の間に出てきてしまいます。
どうすれば引っ付けて表示することができるのでしょうか?

erbも使っているので、今のソースは↓のようになってます。
e = ERB.new <<EOS, nil, '-'
<%-4.times{-%>

<%-}-%>
EOS
e.run

A 回答 (1件)

Rubyをほとんど使ったことがない人間ですんで,まとはずれなこと言うかもしれません。



★もしかして,HTMLのソースに出力してませんか?

require 'erb'
e = ERB.new <<EOS, nil, '-'
<%-4.times{-%>

<%-}-%>
EOS
e.run

というソースを作り,
Ruby 1.9.0-devel-20060415のコンパイラで
コマンドプロンプトから実行したところ,






と4行含まれました。(ヒアドキュメント中にある,「改行文字」が反映されている)

============================

さて,

http://www.atmarkit.co.jp/fxml/rensai/xmlwomanab …

HTMLでは「半角スペース」「タブ文字」「改行文字」等を纏めて,
「空白文字類」として扱い,1つ以上の空白文字類は1つの半角スペースに置換されて扱われるのです。

さきほどコマンドプロンプト上で表示されていた━の前後の改行文字は
この原則に従い,HTML上では半角スペース一個分に置換されて扱われます。
=============Before================
(改行)

(改行)
(改行)

(改行)
============After===============
━ ━ ━ ━

おそらくその辺が関与していると思うのですが・・・
    • good
    • 0
この回答へのお礼

HTMLに出力してます!説明不足でした。すみません。
<%-4.times{-%>━<%-}-%>と一行で全部書いてみると、思った通りに表示することができました!!ありがとうございます♪
「HTMLでは「半角スペース」「タブ文字」「改行文字」等を纏めて,
「空白文字類」として扱い,1つ以上の空白文字類は1つの半角スペースに置換されて扱われる」というのを初めて知りました。勉強になりました~~~~っ

お礼日時:2007/10/31 20:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!