13

テキストツリーを表示する必要があるプロジェクトに取り組んでいます。JavaのString.formatメソッドを使用してフォーマットプロセスを簡略化しようとしていますが、可変幅を適用しようとすると問題が発生しました。

現在私は深さと呼ばれる変数(int)を持っています。

私は次のことをしようとします:

String.format("%"+depth+"s"," ") + getOriginalText() + "\n";

ただし、次のエラーが発生します。

java.util.FormatFlagsConversionMismatchException: Conversion = s, Flags = 0

これを行う方法についての提案はありますか、それともループを解決する必要がありますか?

助けてくれてありがとう!

4

2 に答える 2

11

これは機能します:

int depth = 5;
String str= "Hello"+ String.format("%"+depth+"s"," ") + "world" + "\n";
System.out.println(str);

間にスペースを入れて5を印刷します。

こんにちは世界。

depthコードをチェックして、有効なint値が割り当てられていることを確認してください。(の無効な値depth)が問題である可能性があります。

于 2012-12-09T06:29:27.850 に答える
0

「System.out.printf」コマンドを使用して、次のことを試すことができます。

int depth = 10;

System.out.printf("%s" + "%" +depth + "s", "Hello","World" );

こんにちは世界

于 2019-12-31T15:48:53.610 に答える