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

问题描述 投票:9回答:2

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

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

我尝试执行以下操作:

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

但是出现以下错误。

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

关于如何执行此操作的任何建议,还是我应该解决循环问题?

感谢您的帮助!

java string string-formatting
2个回答
7
投票

此作品:

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

它在中间有空格的同时打印5。

Hello World。

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


0
投票

您可以使用“ System.out.printf”命令尝试以下操作:

int depth = 10;

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

Hello World

© www.soinside.com 2019 - 2024. All rights reserved.