回答編集履歴
3
修正
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
String.format の %s で文字数を指定した場合、Windows のコマンドラインプログラムを C で作った時の全角2/半角1のような動作(
|
1
|
+
String.format の %s で文字数を指定した場合、Windows のコマンドラインプログラムを C で作った時の全角2/半角1のような動作(単に2バイト文字がたまたま半角2つ分のフォントだったとも)は無く、単純に unicode 1 文字単位で動作しているのでしょう。(char 2 つ以上使うコードの文字がどうなるのかは調べていません。)
|
2
2
|
|
3
3
|
ファイルを読んで表示するだけのコードとして全体を作り直してみました。
|
4
4
|
Windows のコマンドプロンプトで実行する前提として、 文字列を MS932 のバイト列に変換することで文字列全体の表示幅を得ています。
|
2
修正
test
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
String.format の %s で文字数を指定した場合、Windows のコマンドラインプログラムを C で作った時の全角2/半角1のような動作は無く、単純に unicode 1 文字単位で動作します。
|
1
|
+
String.format の %s で文字数を指定した場合、Windows のコマンドラインプログラムを C で作った時の全角2/半角1のような動作(うろい覚え)は無く、単純に unicode 1 文字単位で動作します。
|
2
2
|
|
3
3
|
ファイルを読んで表示するだけのコードとして全体を作り直してみました。
|
4
|
-
Windows のコマンドプロンプトで実行する前提と
|
4
|
+
Windows のコマンドプロンプトで実行する前提として、 文字列を MS932 のバイト列に変換することで文字列全体の表示幅を得ています。
|
5
5
|
for で空白を必要数表示することで解決されたそうですが、今の java の String には repeat メソッドがありますのでそれを利用しています。
|
6
6
|
|
7
7
|
Main.java
|
@@ -91,7 +91,7 @@
|
|
91
91
|
お財布,収,10000,N/A
|
92
92
|
食費,支,10000,N/A
|
93
93
|
```
|
94
|
-
実行結果
|
94
|
+
実行結果(teratail 上ではフォントの関係でズレ)
|
95
95
|
```plain
|
96
96
|
|名目 |収入 |支出 |残額 |補足 |
|
97
97
|
+---------------+--------------+--------------+------+-------------------------+
|
1
追加
test
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
String.format の %s で文字数を指定した場合、Windows のコマンドラインプログラムを C で作った時の全角2/半角1のような動作は無く、単純に unicode 1 文字単位で動作します。
|
2
2
|
|
3
3
|
ファイルを読んで表示するだけのコードとして全体を作り直してみました。
|
4
|
+
Windows のコマンドプロンプトで実行する前提と思いますので、 文字列を MS932 のバイト列に変換することで文字列全体の表示幅を得ています。
|
4
5
|
for で空白を必要数表示することで解決されたそうですが、今の java の String には repeat メソッドがありますのでそれを利用しています。
|
5
6
|
|
6
7
|
Main.java
|