에러

[에러] java.util.IllegalFormatConversionException: d != java.lang.String 에러 해결

수키 💻 2022. 2. 16. 09:26
반응형

[에러]  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진수 정수

 

 

반응형