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。最有可能的是(invalid value in 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 回答