JAVA 금액 3자리 콤마 넣기 빼기 샘플

자바에서 3자리 마다 콤마를 넣는 방법과 제거하는 방법을 알아보겠습니다.

금액을 화면에 표시하거나 파일 출력을 할때 3자리마다 콤마가 있는것이 보기에 편합니다.

반대로 화면 또는 파일에서 받은 값에 콤마가 있으면 계산이 제대로 안되는 경우가 발생합니다.

또는 DB에 값을 저장할때 에러가 발생하는 경우도 있습니다.

 

3자리 콤마 넣기

3자리 마다 콤마를 넣기 위해서 DecimalFormat 로 포맷을 지정하는 방법과 정규식을 사용하는 방법이 있습니다.

DecimalFormat 

DecimalFormat을 사용 하기 위해서는 import를 해야합니다.

import를 하지 않고 DecimalFormat를 사용하면 에러가 발생하니 주의해야 합니다.

import java.text.DecimalFormat;

public class Program
{
    public static void main(String[] args) {

        int amount = 1234567890;
        DecimalFormat df = new DecimalFormat("###,###");
        String strAmount = df.format(amount);
        System.out.println(strAmount);

	}
}

 

결과

1,234,567,890

 

replaceAll

정규식을 사용해 3자리마다 콤마를 넣는 방법을 알아보겠습니다.

정규식을 사용하기 위해 replaceAll를 같이 사용하겠습니다.

public class Program
{
    public static void main(String[] args) {

        int amount = 1234567890;

        String strAmount = Integer.toString(amount);
        strAmount = strAmount.replaceAll("\\B(?=(\\d{3})+(?!\\d))", ",");
        
        System.out.println(strAmount);
	}
}

 

결과

1,234,567,890

 

replaceAll을 사용하기 위해서는 숫자 타입을 문자열 타입으로 변환해야합니다.

샘플에서는 숫자 타입의 값을 Integer.toString 사용해 문자열로 변환했습니다.

문자열로 변환후 replaceAll을 사용해 3자리 마다 콤마를 넣고 있습니다.

 

3자리 콤마 제거

콤마를 제거하는 방법을 알아보겠습니다.

화면 또는 파일에서 받은 값에 콤마가 들어있는 경우에는 계산이 안됩니다.

또는 DB 컬럼 속성에 따라 값이 저장이 안되는 경우도 발생합니다.

값이 콤마가 있다는 것은 숫자 타입이 아닌 문자열 타입이기 때문입니다.

replace를 사용해 콤마를 삭제 하는 방법이 가장 많이 사용되는 방법입니다.

예제를 보겠습니다.

public class Program
{
    public static void main(String[] args) {

        int amount;

        String strAmount = "1,234,567,890";
        strAmount = strAmount.replace(",","");

        amount = Integer.parseInt(strAmount);

        System.out.println(strAmount);
        System.out.println(amount);
	}
}

 

결과

1234567890
1234567890

 

결과를 확인해 보면 콤마가 삭제되었습니다.

콤마 삭제후 처리에 따라 값을 int형으로 변환을 해도 됩니다.

 

정리

숫자 3자리 마다 콤마를 넣는 방법과 콤마를 삭제하는 방법에 대해 알아봤습니다.

콤마를 넣는 방법으로 DecimalFormat을 에제로 봤습니다.

DecimalFormat 뿐만 아니라 NumberFormat을 사용해서도 콤마를 넣을수 있습니다.

NumberFormat을 사용하면 숫자와 관련된 더 많은 포맷 형태를 간단하게 구연할 수 있습니다.

 

댓글