반응형
아래 소스코드는 입력된 금액, 숫자에 대해서 한글로 변환해서 반환하는 예제입니다.
소스코드
000000000000 입력된 금액의 앞에 추가하여 금액을 16자리로 만듭니다. 금액의 크기에 따라 각 자리를 판단하기 위해서입니다. 입력된 금액을 뒤에서부터 한 자리씩 읽어가며 각 자리에 해당하는 한글로 변환 작업을 수행합니다.
변환 작업에서 0이 아닌 숫자에 대해서만 처리를 하고, 그에 따라 일, 십, 백, 천, 만, 억, 조 단위로 한글을 추가합니다.
각 자리의 숫자에 따라 일, 이, 삼, 사, 오, 육, 칠, 팔, 구를 추가합니다.
예를 들어, 입력된 금액이 "1234"일 경우
0000000000001234로 변환된 후 4번째 자리부터 읽어가면서 0이 아닌 경우에 해당하는 한글을 추가합니다.
결과적으로 일천이백삼십사가 반환됩니다.
public static String stramt(String amt) {
String tmpamt = "";
if (StringUtils.equals(amt, "0")) return "";
amt = "000000000000" + amt.replaceAll(",", "");
int j = 0;
for (int i = amt.length(); i > 0; i--) {
j++;
String aaa = amt.substring(i - 1, i);
if (!aaa.equals("0")) {
if (j % 4 == 2) tmpamt = "십" + tmpamt;
if (j % 4 == 3) tmpamt = "백" + tmpamt;
if (j > 1 && j % 4 == 0) tmpamt = "천" + tmpamt;
}
String bbb = amt.substring(amt.length() - 8, amt.length() - 4);
if (j == 5 && Integer.parseInt(bbb) > 0) tmpamt = "만" + tmpamt;
String ccc = amt.substring(amt.length() - 12, amt.length() - 8);
if (j == 9 && Integer.parseInt(ccc) > 0) tmpamt = "억" + tmpamt;
String ddd = amt.substring(amt.length() - 16, amt.length() - 12);
if (j == 13 && Integer.parseInt(ddd) > 0) tmpamt = "조" + tmpamt;
if (aaa.equals("1")) tmpamt = "일" + tmpamt;
if (aaa.equals("2")) tmpamt = "이" + tmpamt;
if (aaa.equals("3")) tmpamt = "삼" + tmpamt;
if (aaa.equals("4")) tmpamt = "사" + tmpamt;
if (aaa.equals("5")) tmpamt = "오" + tmpamt;
if (aaa.equals("6")) tmpamt = "육" + tmpamt;
if (aaa.equals("7")) tmpamt = "칠" + tmpamt;
if (aaa.equals("8")) tmpamt = "팔" + tmpamt;
if (aaa.equals("9")) tmpamt = "구" + tmpamt;
}
return tmpamt;
}
public static void main(String[] args) throws Exception {
// 예제 1: 0
String amount1 = "0";
System.out.println("Amount in Korean (Example 1): " + stramt(amount1));
// 예제 2: 1234
String amount2 = "1234";
System.out.println("Amount in Korean (Example 2): " + stramt(amount2));
// 예제 3: 10000
String amount3 = "10000";
System.out.println("Amount in Korean (Example 3): " + stramt(amount3));
// 예제 4: 99871
String amount4 = "99871";
System.out.println("Amount in Korean (Example 4): " + stramt(amount4));
// 예제 5: 98452148
String amount5 = "98452148";
System.out.println("Amount in Korean (Example 5): " + stramt(amount5));
}
반응형
'개발이야기 > Java' 카테고리의 다른 글
[Java] Map에 키(key), 값(value)이 존재하는지 확인하기(containsKey, containsValue) (0) | 2023.11.20 |
---|---|
[Java] 문자열에서 HTML 태그 제거하기 (정규식 사용) (1) | 2023.11.20 |
[Java] 파일명 확장자 추출하고 확인하기 (0) | 2023.11.18 |
[Java] 개인정보 마스킹 처리하기 (이름, 휴대번호, 이메일, 계좌번호, 은행) (0) | 2023.11.13 |
[Java] StringUtils 클래스 메서드 사용법, 예제 (isEmpty, isNotEmpty, isBlank, isNotBlank) (0) | 2023.11.13 |
댓글