0

データを列に正当化するために文字列でタブレータを使用する方法は?

私は例えばこの文字列を持っています:

test = "A10 B10 C10 D10 E10"
test = "A100 B100 C100 D100 E100"
test = "A1000 B10 C100 D1000 E10"

それらをデータテーブルの1列としてブラウザに出力しようとしています

<rich:column styleClass="leftAlign">
  <h:outputText value="#{bean.test}"/>
</rich:column> 

しかし\t、区切り文字として使用すると、次のようになります。

A10 B10 C10 D10 E10
A100 B100 C100 D100 E100
A1000 B10 C100 D1000 E10

しかし、私はそれを次のように見る必要があります:

A10   B10   C10   D10   E10
A100  B100  C100  D100  E100
A1000 B10   C100  D1000 E10

注:もちろんJavaを使用して、次のようなことができます

A0010 B0010
A0100 ........

または短い単語の後ろにいくつか追加" "しますが、少し厄介なようです..

他のよりエレガントな方法でそれを行うことができますか?

更新: ...&nbsp;で区切られたCSVファイルで作業しているため 使用できません。;

4

1 に答える 1

1

それがテーブルで、HTML を使用している場合は、テーブルを出力することをお勧めします。テーブルの列は、ブラウザーによって整列されます。

<table>
<tbody>
<tr><td>A10</td><td>B10</td><td>C10</td><td>D10</td><td>E10</td></tr>
<tr><td>A100</td><td>B100</td><td>C100</td><td>D100</td><td>E100</td></tr>
<tr><td>A1000</td><td>B10</td><td>C100</td><td>D1000</td><td>E10</td></tr>
</tbody>
</table>

タブが機能しない理由は、通常、HTML ではすべての連続する空白 (スペース、タブ、垂直タブ、改行、改行など) が1 つのスペースとして扱われるためです。

本当にこれをテキストで行いたい場合は、等幅フォントを使用する必要があります。次に、2 つのオプションがあります。

改行なしのスペース文字エンティティを使用するか、次のようにし&nbsp;ます。

A10&nbsp;&nbsp;&nbsp;B10&nbsp;&nbsp;&nbsp;C10&nbsp;&nbsp;&nbsp;D10&nbsp;&nbsp;&nbsp;E10
<br>A100&nbsp;&nbsp;B100&nbsp;&nbsp;C100&nbsp;&nbsp;D100&nbsp;&nbsp;E100
<br>A1000&nbsp;B10&nbsp;&nbsp;&nbsp;C100&nbsp;&nbsp;D1000&nbsp;E10

white-space: preまたは、CSS スタイル(またはその関連スタイルの 1 つ)を使用してコンテンツを使用します。pre要素はデフォルトでそれを使用するため、次のようになります。

<pre>A10   B10   C10   D10   E10
A100  B100  C100  D100  E100
A1000 B10   C100  D1000 E10</pre>

これは、3 つのオプションすべての実際の( source ) です。フィールド間にセミコロンが必要であると言ったとおりです。

于 2013-04-26T08:42:54.060 に答える