使用字符串格式化程序引发了SonarQube问题

时间:2017-06-08 07:35:42

标签: java sonarqube

SonarQube在我的字符串格式化程序使用上引发了一个问题:

  

应使用格式说明符而不是字符串连接。

我使用下面的java代码在数字中添加填充0。

int paddingLength = seqLength - seqNoLength;
String.format("%0" + paddingLength + "d", seqNo);

1 个答案:

答案 0 :(得分:3)

引发此问题的原因是您将连接的字符串传递给格式化程序。如果您要使用字符串格式,那么使用字符串格式:

int paddingLength = seqLength - seqNoLength;
String fmt = String.format("%%0%dd", paddingLength);
String.format(fmt, seqNo);

甚至

int paddingLength = seqLength - seqNoLength;
String.format(String.format("%%0%dd", paddingLength), seqNo);

虽然第一个版本的可读性更高。