의도된 경우도 있으나 보통 서식 지정 메서드를 잘못 사용한 것이며 연결된 문자열에서 사용된 변수가 %와 같은 특수문자를 포함하는 경우 예기치 않은 예외가 발생할 수 있습니다.
또한 이는 ,가 필요한 곳에 +를 입력하여 문자열 서식의 인수를 잘못 연결한 결과일 때도 있습니다.
예:
static String formatGreeting(String userName) {
return String.format("Hello, " + userName);
}
여기서 userName은 서식 문자열의 일부로 해석됩니다. 이 때문에 IllegalFormatException(예: userName이 '%'인 경우)이 발생하거나 거대한 양의 메모리를 사용(예: userName이 '%2000000000%'인 경우)할 수 있습니다.
이 호출은 String.format("Hello, %s", userName);과 같이 바꿔야 합니다.
이 검사는 java.util.Formatter, java.lang.String, java.io.PrintWriter 또는 java.io.PrintStream의 서식 지정 메서드 호출을 검사합니다.