한글로 표기한 숫자를 정수로 변환 하여 출력하는 Java소스코드

munilive
munilive

은행, 금융기관 등과 같이 돈의 금액이 중요한 곳에서는 금액을 표기 할 때 숫자 외 한글로 금액을 표기하기도 한다.
이렇게 한글로 숫자를 표기한 것을 다시 숫자로 변환해 주는 Java Class 코드이다.
이백칠심오만이천칠백 이렇게 한글로 표현된 숫자를 2752700 이렇게 숫자로 변환한다.

예제 코드

import java.util.*;

public class HangulToNum {
    public static void main(String[] args) {
        String input = "이천오백삼십만사천오백육십칠";
        System.out.println(input);
        System.out.println(hangulToNum(input));
    }
    public static long hangulToNum(String input) {
        long result = 0;
        long tmpResult = 0;
        long num = 0;
        final String NUMBER = "영일이삼사오육칠팔구";
        final String UNIT = "십백천만억조";
        final long[] UNIT_NUM = { 10, 100, 1000, 10000, (long)Math.pow(10,8), (long)Math.pow(10,12) };
        StringTokenizer st = new StringTokenizer(input, UNIT, true);
        while(st.hasMoreTokens()) {
            String token = st.nextToken();
            //숫자인지, 단위(UNIT)인지 확인
            int check = NUMBER.indexOf(token);
            if(check == -1) { //단위인 경우
                if("만억조".indexOf(token) == -1) {
                    tmpResult += (num != 0 ? num : 1) * UNIT_NUM[UNIT.indexOf(token)];
                } else {
                    tmpResult += num;
                    result += (tmpResult != 0 ? tmpResult : 1) * UNIT_NUM[UNIT.indexOf(token)];
                    tmpResult = 0;
                }
                num = 0;
            } else { //숫자인 경우
                num = check;
            }
        }

        return result + tmpResult + num;
    }
}

/* 결과
 * 이천오백삼십만사천오백육십칠
 * 25304567
 */
munilive

munilive

Backend Application Developer

Share

Comments

Related Posts

php number format for javascript

php number format for javascript

PHP 함수로 존재하는 함수를 함수로 구현하였습니다. 사용방법은 php와 동일합니다.

munilive munilive ·
콘솔에서 즐기는 간단한 가위 바위 보 게임

콘솔에서 즐기는 간단한 가위 바위 보 게임

콘솔 창을 이용해서 간단하게 즐길 수 있는 가위/바위/보 게임 Java Class 코드입니다. 의 를 이용해서 콘솔 창에서 가위/바위/보에 대한 숫자 입력을 받으면 컴퓨터가 랜…

munilive munilive ·
그누보드4 아이디 변경 함수 - 모든 테이블의 아이디를 변경

그누보드4 아이디 변경 함수 - 모든 테이블의 아이디를 변경

그누보드 사용시 아이디값을 이메일등으로 사용하거나 아이디를 변경하게 하도록 하는 사이트들이 존재 한다. 그누보드에서는 아이디 값이 게시판테이블에서나 포인트등 에서 회원을 구분하…

munilive munilive ·