Java的String.format方法中的可变宽度

Phi*_*uff 8 java string string-formatting

我正在开展一个项目,我需要在其中显示文本树.我正在尝试使用Java的String.format方法来简化格式化过程,但在尝试应用变量宽度时遇到了麻烦.

当前我有一个变量(一个int),称为深度.

我尝试执行以下操作:

String.format("%"+depth+"s"," ") + getOriginalText() + "\n";
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误.

java.util.FormatFlagsConversionMismatchException: Conversion = s, Flags = 0
Run Code Online (Sandbox Code Playgroud)

关于如何做到这一点的任何建议,还是我应该解决循环问题?

谢谢您的帮助!

Yog*_*ngh 6

这有效:

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

它打印5,其间有空格.

你好,世界.

请检查您的代码并确保depth为其分配有效值int.最有可能的是(无效值depth)是问题.