글자길이 1글자(3의 배수 X) | 콤마의 개수 1/3 => 0
글자길이 2글자(3의 배수 X) | 콤마의 개수 2/3 => 0
글자길이 3글자(3의 배수 O) | 콤마의 개수 3/3 => 1
// 3의 배수이므로 '-1' 하여 콤마의 개수 => 1-1 = 0
글자길이 6글자(3의 배수 O) | 콤마의 개수 6/3 => 2
// 3의 배수이므로 '-1' 하여 콤마의 개수 => 2-1 = 1
글자길이 7글자(3의 배수 X) | 콤마의 개수 7/3 => 2
글자길이 9글자(3의 배수 O) | 콤마의 개수 9/3 => 3
// 3의 배수이므로 '-1' 하여 콤마의 개수 => 3-1 = 2
// 숫자를 문자열로 바꾸어주기
String temp = String.valueOf(num);
char[] origin_arr = temp.toCharArray(); // char 배열타입
// 콤마의 개수
(3의배수이면 3으로 나눈값에 -1, 3의배수가 아닐 경우 3으로 나눈값)
int comma_len =
(origin_arr.length%3==0)?origin_arr.length/3-1
:origin_arr.length/3);
// 콤마의 개수를 포함하여 길이가 늘어나니 (기존배열 + 콤마개수) 인
// 새로운 char 타입 배열 선언
char[] result_arr = new char[origin_arr.length + comma_len];
// i 는 기존 글자길이-1 마지막 인덱스 수
// j 는 ,가 들어간 배열의 마지막 인덱스 수
// count 는 , 가 들어갈 위치 파악
for(int i=origin_arr.length-1, j=result_arr.length-1
,count=1; i>=0; i--,j--,count++) {
if(count%4 != 0) {
// result_arr의 4번째 마다 , 가 들어가므로 %4 != 0
result_arr[j] = origin_arr[i];
} else { // count가 4일때,
result_arr[j] = ',';
i++;
// result_arr의 자리는 , 으로 채워지지만
// 그 다음 인덱스의 숫자가 원하지 않은 것이 올 수 있으므로
// i++ 을 해준다.
} // end of if~else-------
} //end of for----------
// result_arr => , 가 포함된 num
java.text.DecimalFormat import하기
DecimalFormat df = new DecimalFormat("#,###");
// 3자리 마다 콤마(,) 찍기
System.out.println("$" + df.format(금액));
valueOf : https://velog.io/@jjoung-2j/valueOf
toCharArray : https://velog.io/@jjoung-2j/charAt-toCharArray-substring-indexOf-lastIndexOf
my.day10.a.string -> Main_String
my.util -> MyUtil