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

SonarQube对我的字符串格式化程序的使用提出了一个问题:

Format specifiers should be used instead of string concatenation.

我在下面的Java代码中使用了填充数字0.

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

解决方法:

引发此问题是因为您要将串联的字符串传递给格式化程序.如果要使用字符串格式,请使用字符串格式:

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);

尽管第一个版本更具可读性.

上一篇:声纳皮棉插件无法读取lint-results.xml


下一篇:测试工程师的福音-如何使用Sonar完成代码质量检测