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);
尽管第一个版本更具可读性.