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

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

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

我尝试执行以下操作:

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.

Hello     World.

请检查您的代码,并确保为深度分配了有效的int值.问题(深度值无效)很可能是问题所在.

转载注明原文:Java的String.format方法中的可变宽度 - 代码日志