반응형

이전에 어디선가 질문 받은게 갑자기 생각나 String.format을 사용하지 않고 메서드를 구현해보았다.

    @Test
    public void convertStringToNumberStyle(String money) {
        String[] strSplit = money.split("");
        String convertedNumberStyle = "";

        int size = strSplit.length - 1;

        int count = 1;
        for (int i = size; i >= 0; i--) {

            if (count == 1) {
                convertedNumberStyle += strSplit[i];
            } else if (((count % 3) == 0) && (i != 0)) {
                convertedNumberStyle = "," + strSplit[i] + convertedNumberStyle;
            } else {
                convertedNumberStyle = strSplit[i] + convertedNumberStyle;
            }

            count++;
        }

        System.out.println(convertedNumberStyle); // money : 5000000 => output : 5,000,000
    }

하지만 String.format을 쓰면 1줄이면 끝난다는거 ㅎㅎ

String.format("%,d", Integer.parseInt(money))

심심해서 구현해보았는데 보통 라이브러리들에 의존해서 이런 부분을 처리하다 보니 막상 코드로 옮기기가 쉽지 않았다.

방식도 다양하고 여러 방법이 있겠지만 나는 한글자씩 쪼개어서 string을 다시 합쳐가며 3자리 지점마다 ","를 붙여주는 방식을 택했다.

가끔 자바 관련 면접에도 나올 수 있기에 다양한 방법으로 직접 구현해 보면 좋을 것 같다.

반응형

+ Recent posts