반응형
[에러] java.util.IllegalFormatConversionException: d != java.lang.String 에러 해결
Exception in thread "main" java.util.IllegalFormatConversionException: d != java.lang.String
at java.util.Formatter$FormatSpecifier.failConversion(Formatter.java:4302)
at java.util.Formatter$FormatSpecifier.printInteger(Formatter.java:2793)
at java.util.Formatter$FormatSpecifier.print(Formatter.java:2747)
at java.util.Formatter.format(Formatter.java:2520)
at java.util.Formatter.format(Formatter.java:2455)
at java.lang.String.format(String.java:2940)
at test.JavaTest.main(JavaTest.java:7)
✔ 현상
나같은 경우는 api 를 호출해서 받아오는걸 String.format()을 이용해서 log로 기록해주는데 정수형을 넣어야할 %d에 문자를 넣어서 문제가 생긴걸 발견했다
✔ 원인
문자열 형식이 잘못됐을때 나는 에러
예를 들면 아래 코드를 실행시키면 이 오류가 발생한다.
String test = String.format("* %d 정수형을 넣어야함 *", "문자");
✔ 해결
적절한 형식으로 지정해주면 해결이 된다.
%d에 정수형을 넣어주던가
문자열형식인 %s로 바꿔주던가하면된다
%b boolean 형식
%c 문자형
%s 문자열
%f 소수점 형식
%d 정수
%o 8진수 정수
%x 또는 %X 16진수 정수
반응형