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

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

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

我尝试执行以下操作:

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

但是我收到以下错误。

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

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

谢谢您的帮助!

这有效:

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

它打印5,而其间有空格。

你好,世界。

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