Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- python3
- Spring Boot
- 데이터베이스
- 개발
- 디자인 패턴
- django
- db
- node.js
- 자료구조
- JPA
- Python
- 웹 개발
- 웹
- 스프링
- rabbitmq
- HTTP
- BCI
- bytecode
- 파이썬
- 스프링부트
- 안드로이드
- 스프링 부트
- 파이썬3
- 보안
- 자바
- Spring
- ORM
- java
- 장고
- mysql
Archives
- Today
- Total
semtax의 개발 일지
안드로이드에서 String.format 쓸 때 주의점 본문
반응형
개요
이번 포스팅에서는, 안드로이드에서 String.format을 쓸 때, 발생했던 문제점을 정리해보고자 한다.
문제점
보통, 특정 서식으로 이루어진 문자열을 만들때, 자바와 같은 경우 String.format 메서드를 써서 포매팅을 수행하게 된다.
하지만, 안드로이드에서는, String.format를 이용해서 부동소수점을 문자열 포맷팅 할때, 일부 디바이스에서 문제가 발생하게 된다.
대략적으로 아래와 같은 예외가 발생하게 된다.
Fatal Exception: java.lang.NullPointerException
Attempt to get length of null array
java.util.Formatter$FormatSpecifier.addZeros (Formatter.java:3505)
java.util.Formatter$FormatSpecifier.print (Formatter.java:3401)
java.util.Formatter$FormatSpecifier.print (Formatter.java:3332)
java.util.Formatter$FormatSpecifier.printFloat (Formatter.java:2893)
java.util.Formatter$FormatSpecifier.print (Formatter.java:2844)
java.util.Formatter.format (Formatter.java:2523)
java.util.Formatter.format (Formatter.java:2458)
java.lang.String.format (String.java:2770)
.....
해결책
부동 소수점의 경우에는 String.format 대신에, DecimalFormat 클래스를 이용해서 포매팅 하면 된다.
대략적으로 아래와 같이 해주면 된다.
final DecimalFormat fpsFormat = new DecimalFormat("#.0");
String result = fpsFormat.format(renderFps)
반응형
'개발 > Android' 카테고리의 다른 글
안드로이드 universalApk 옵션과 빌드 시, AndroidManifest.xml 파일 위치 (0) | 2020.05.22 |
---|---|
Gradle Plugin 디버깅 하는 법(원격 디버깅) (0) | 2020.04.26 |
Gradle Task 변수 & 안드로이드 & BuildVariants (0) | 2020.04.23 |
안드로이드 디버깅 툴(Sthetho) 소개 (0) | 2020.01.24 |
Comments