如何在java中使用String.format()

时间:2017-05-11 11:13:14

标签: java string-formatting

我想在java中创建一个带有前缀Size的字符串

String x = "PIPPO                "; //21 character

如何获取前缀大小的字符串,另一个字符是空格?

我已经构建了这段代码,但是我有一个错误

String ragioneSociale =String.format("%21c%n", myString);

3 个答案:

答案 0 :(得分:3)

你可以正确填充你的字符串吗?

String x = "PIPPO";
String xRightPadded = String.format("%1$-21s", x);

可在此处找到更多信息:How can I pad a String in Java?

答案 1 :(得分:1)

你得到的消息是

  

线程中的异常" main" java.util.IllegalFormatConversionException:c!= java.lang.String

因为" c"是字符的格式规范。

你必须使用" s"因为你想要一个字符串:

String ragioneSociale =String.format("%-21s%n", myString);

因为你想让它保持对齐,你必须添加一个减号。

有关更多信息,请参阅Formatter的documentation

答案 2 :(得分:1)

下面:

String ragioneSociale =String.format("%21c%n", myString);

c是错误的格式说明符。您想:s代替。来自javadoc

  

's','S'general如果参数arg为null,则结果为“null”。如果arg实现了Formattable,则调用arg.formatTo。否则,通过调用arg.toString()获得结果。

     

'c','C'字符结果是Unicode字符

由于您提供的参数是字符串,因此字符c无法正常工作。

与空间对齐;转而使用“%1 $ -21s”作为格式。