[Java] Number with Comma 천 단위 콤마 찍기
by Yena Choi
Study Note
12345678 이라는 숫자에 ‘12,345,678’ 처럼 천 단위로 콤마를 찍어야 할 때가 있다. NumberFormat
을 사용하면 콤마가 찍힌 String을 반환받는다.
int number = 12345678;
System.out.println(number);
// 12345678
String commaNum = NumberFormat.getInstance().format(number);
System.out.println(commaNum);
// 12,345,678
getInstance()
에 아무 것도 넣지 않으면 미국 스타일이 default 설정이 되어 천 단위로 콤마(,)가 찍힌다. 이는 getInstance(Locale.US)
와 같은 결과를 반환한다. 독일어를 사용한다면 getInstance()
를 했을 때 독일식 표기법대로 결과를 받는다. 정확한 설명은 JAVA SE 10 페이지에 이렇게 나와있다.
getInstance()
Returns a general-purpose number format for the current default FORMAT locale.
현재 기본 형식으로 설정된 범용 번호 형식을 반환한다.
// 독일어가 기본 설정일 경우
int number = 12345678;
String dotNum = NumberFormat.getInstance().format(number);
System.out.println(dotNum);
// 12.345.678
// NumberFormat.getInstance(Locale.GERMANY).format(number)와 같다.
만약 항상 콤마 찍힌 String 값을 얻어야 한다면 지역을 Locale.US
로 하드코딩 해야겠지만, 빈 칸으로 두는 코드가 더 범용성있는 코드라고 생각된다.
References
- https://stackoverflow.com/questions/7070209/converting-integer-to-string-with-comma-for-thousands
- https://docs.oracle.com/javase/10/docs/api/java/text/NumberFormat.html