안녕하세요.
자바에서 금액을 표시할 때 천단위 콤마(,)를 넣는 방법을 알아보겠습니다.
금액을 읽기 편하기위해서는 숫자사이에 콤마를 넣어주어야합니다. 막상 구현하려고 하면 어떻게해야하는지 난감하죠. 그래서 이 블로그에 소스와 함께 숫자에 콤마찍는 방법을 설명해두겠습니다.
숫자에 콤마 찍기
예) 3125121 -> 3,125,121
중요한 것은 숫자 int형이나 long형이라면 콤마를 넣을때는 String 문자열이 된다는 점입니다.
자바에서 숫자 사이에 콤마( , )를 찍는 방법은 java.text.DecimalFormat 클래스를 활용하는 방법과 정규식을 활용하는 방법의 2가지가 대표적입니다. 소스로 보시는게 편하겠죠.
1. java.text.DecimalFormat 클래스를 이용해서 콤마찍기
int amount = 99999999999;
DecimalFormat df = new DecimalFormat("###,###");
String money = df.format(amount);
System.out.println(money);
결과
99,999,999,999
DecimalFormat 은 NumberFormat 을 상속받고 있습니다.
DecimalFormat(String pattern)를 이용하여 패턴을 입력합니다.
2. 자바 정규식을 활용하여 콤마찍기
String amount = "99999999999";
amount = amount.replaceAll("\\B(?=(\\d{3})+(?!\\d))", ",");
System.out.println(amount);
결과
99,999,999,999
위에서도 말씀드렸지만 콤마가 들어간 금액숫자는 문자열 String입니다. 취급할때 문자로 취급해서 사용해주시면 됩니다. 그럼 오늘도 코딩으로 스트레스 받지 마시고 즐거운 코딩라이프 되세요~
참고 Class NumberFormat
https://docs.oracle.com/javase/7/docs/api/java/text/NumberFormat.html
공개 추상 클래스 NumberFormat
확장 형식
NumberFormat모든 로케일에 대한 숫자의 형식을 지정하고 구문 분석하는 데 도움이 됩니다. 코드는 소수점, 천 단위 구분 기호 또는 사용된 특정 십진수 또는 숫자 형식이 십진수인지 여부에 대한 로케일 규칙과 완전히 독립적일 수 있습니다.
현재 로케일의 숫자 형식을 지정하려면 팩토리 클래스 메소드 중 하나를 사용하십시오.
여러 숫자의 형식을 지정하는 경우 형식을 가져와 여러 번 사용하는 것이 더 효율적이므로 시스템이 현지 언어 및 국가 규칙에 대한 정보를 여러 번 가져올 필요가 없습니다.myString = NumberFormat.getInstance().format(myNumber);
다른 로케일에 대한 숫자 형식을 지정하려면 에 대한 호출에서 지정하십시오 getInstance.NumberFormat nf = NumberFormat.getInstance(); for (int i = 0; i < myNumber.length; ++i) { output.println(nf.format(myNumber[i]) + "; "); }
NumberFormat숫자를 구문 분석 하는 데 사용할 수도 있습니다 .NumberFormat nf = NumberFormat.getInstance(Locale.FRENCH);
myNumber = nf.parse(myString);
'프로그래밍 > JAVA' 카테고리의 다른 글
[JAVA] 문자열 NULL 널, 공백 체크하기 (0) | 2021.12.29 |
---|---|
[JAVA] 특수 문자 그림문자, 기호 제거하기 (0) | 2021.12.29 |
[JAVA] 자바 문자열이 숫자인지 체크하기(숫자입력체크) (0) | 2021.12.27 |
댓글