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

sha*_*ing 2 java regex string substring

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

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

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

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

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

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

Daw*_*ica 6

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

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