"UnknownFormatConversionException : Conversion = End of String" 위와 같은 오류를 보셨다면 저와 비슷한 경우가 아닐까 생각이 듭니다.. 사실 한번 당했던 오류인데 시간이 지나 똑같은 ...

[안드로이드] UnknownFormatConversionException : Conversion = End of String 해결방법



"UnknownFormatConversionException : Conversion = End of String"

위와 같은 오류를 보셨다면 저와 비슷한 경우가 아닐까 생각이 듭니다..

사실 한번 당했던 오류인데 시간이 지나 똑같은 실수를 해서 이참에 글로 남깁니다.








1. 원인

String.format() 메서드를 사용할 때 정수형(%d), 문자열(%s), 부동 소수점(%f)과 같이

약속된 형식 변환 문자가 사용되어야 합니다. 

이를 벗어나서 알 수 없는 형식 변환 문자가 보이면 오류가 발생합니다.


아래와 같이 String.format()을 사용했다고 예를 들어봅니다.

val percentage = 80
Log.d("TEST", String.format("%d %", percentage))


"80 %"가 출력될 것이라고 기대했지만 마지막 "%"를 알 수 없는 형식 변환 문자로 판단하고

UnknownFormatConversionException 오류가 발생합니다.








2. 해결 방법

"%" 같은 경우는 "%%"를 사용하거나 또는 형식 변환 문자(%s)를 사용하는 것도 방법이 될 것 같습니다.

val percentage = 80
Log.d("TEST", String.format("%d %%", percentage)) // 80 %
Log.d("TEST", String.format("%s", "$percentage %")) // 80 %



음 사실 이게 제일 깔끔할 것 같기도 하네요 ㅎㅎ

Log.d("TEST", "$percentage %") // 80 %



개인적으로 그냥 한마디로 정리하면 

String.format()을 사용해야 한다면 "%" 사용을 조심합시다...!





0 comments: