将字符串格式化为特定精度时出现问题

时间:2017-02-09 19:48:31

标签: java regex string substring

我正在尝试格式化字符串并将其写入文件。请参阅下面的代码

StringBuilder sb=new StringBuilder();
sb.insert(0, String.format("%-30s", recDataWithWarId.getRiaFirmName() != null ? recDataWithWarId.getRiaFirmName() : " "));

我想要达到的条件是(我已经掌握了下面提到的条件1):

  1. 如果recDataWithWarId.getRiaFirmName()的长度不是30个字符或null,我想用空格填充其余的空格。

  2. 如果长度大于30,我还希望将recDataWithWarId.getRiaFirmName()限制为30,并且我希望此代码会自动执行。

  3. 实现这两个条件的最有效方法是什么,而不必为子字符串和一个格式编写冗长的代码?我必须在多个地方这样做,因为这是一个相当大的文本文件。

1 个答案:

答案 0 :(得分:6)

您需要在格式字符串中指定精度和宽度。你想要"%-30.30s"

第一个-30指定该值将在右侧填充为30个字符。小数点后的30指定最大字符数。