본문 바로가기
Development/Android

[안드로이드] String Format 사용시 주의사항

by 푸민 2015. 10. 2.
반응형


안녕하세요 푸민입니다.

이번에 개발하다가 생긴 이슈인 String 객체의 format() 메소드에 대해서 포스팅합니다.

String.format() 의 경우 많이 사용하지는 않지만 가끔 Url 같이 긴 String 을 작성할때 사용해왔습니다. format() 메소드에서는 우리가 보통은 인자를 넘겨줘서 문자열로 만들어주는데요. 첫번째 파라미터에 문자열을 주되 해당 문자열 내에 %s, %d, %f 등을 추가하여 두번째, 세번째, 네번째 파라미터를 추가해줍니다.


String str = String.format("test %f", 12.123f);


이렇게 사용할때 주의사항이 있는데 String.format() 의 인자중에 Locale 을 설정해주는 값이 있습니다. 보통은 따로 설정을 안해주고 기본값으로 주는데 그런 경우에 자신의 디바이스 위치를 기준으로 설정이 됩니다. 


여기까진 오케이! 그러나 문제는 뭐냐면... 보통 Float 값을 문자열로 변환하면 12.123 같이 표기가 되는데, format() 에 Locale 설정값에 따라 12.123(dot)이 출력이 될때가 있고 12,123(comma)이 출력이 될때가 있습니다. 그래서 Float 등 실수 타입을 사용할때 주의해야됩니다.


String str = String.format(Locale.KOREA, "test %f", 12.123f);


이런식으로 Locale 을 픽스해주면 문제는 없겠네요 ㅎ


참고로 comma 찍히는 현상을 독일, 이탈리아, 프랑스가 있습니다.




반응형

댓글