SonarQube在我的字符串格式化程序使用上引发了一个问题:
应使用格式说明符而不是字符串连接。
我使用下面的java代码在数字中添加填充0。
int paddingLength = seqLength - seqNoLength;
String.format("%0" + paddingLength + "d", seqNo);
答案 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);
虽然第一个版本的可读性更高。