• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Rubyのtimesを使うと発生する謎の空白)

Rubyのtimesで発生する謎の空白問題

このQ&Aのポイント
  • Rubyのtimesを使ってグラフを作ろうと思っています。timesを使って、指定した回数分だけ罫線「━」で横に棒グラフを表示するという簡単なものですが、表示するときに謎の空白が発生してしまいます。
  • 具体的には、timesで指定した回数分の「━」が表示される際、半角スペースほどの空白が「━」の間に出てきてしまいます。
  • この問題を解決するには、表示するときに生成される空白を消す方法を見つける必要があります。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.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/xmlwomanabou10/learning-xml10.html HTMLでは「半角スペース」「タブ文字」「改行文字」等を纏めて, 「空白文字類」として扱い,1つ以上の空白文字類は1つの半角スペースに置換されて扱われるのです。 さきほどコマンドプロンプト上で表示されていた━の前後の改行文字は この原則に従い,HTML上では半角スペース一個分に置換されて扱われます。 =============Before================ (改行) ━ (改行) (改行) ━ (改行) ============After=============== ━ ━ ━ ━ おそらくその辺が関与していると思うのですが・・・

sawa1011
質問者

お礼

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

関連するQ&A

専門家に質問してみよう