Rmb.java
public class Rmb { /** *RMB 기본 정보 및 동작*@author weinee *@version 1.0 */ double number; //RMB 금액 private String[] hanArr = {"zero", "一", "two" , "3", "4", "5", "鲁", "旒", "八", "九" };//한자 계산 기호 private String[] unitArr = {"", "十", "百", "千"};//한자 계산 단위 private String[] unitArrs = {"万", "Billion", "万", "十大", "万" , " "Billion", "Wan", "Yuan"}; //순차적으로 단위 추가//private String[]unitsArr = {"Wan", "Billion"}; //한자를 세는 큰 단위 public Rmb( ){} /** *생성자는 RMB 양을 초기화합니다*@param 주어진 초기화 RMB 숫자*/ public Rmb(double number){ this.number = number; } /** *부동 소수점 숫자를 긴 부분과 소수 부분 문자열로 분해합니다. RMB가 정수로 대체되었습니다. 소수 부분을 취할 때 부동 소수점 숫자의 임계값에 오류가 있습니다.*@return 분해된 문자열 배열을 반환합니다. 첫 번째 배열 요소는 정수 부분이고 두 번째는 소수 부분입니다. 문자열*/ 공개 문자열 [] DivideNum(){ double num = Math.round(number*100);//숫자를 정수로 반올림합니다. long maximumPart = (long)num; //뺄셈을 사용하지 않으려면 소수점 두 자리를 정수로 변환합니다. //doubledecimalsPart = num -integerPart;//소수점 부분, 임계일 때 오류 발생 String 소수점PartStr; long b = 정수부분 % 10 //소수점 이하 두 번째 자리 long a = (integerPart/10) % 10; //소수점 이하 첫 번째 숫자 정수 Part /= 100; if(a==0 && b==0){ 소수PartStr = null }else{ 소수점 파트Str = "" + a + b ; } return new String[] {String.valueOf(integerPart), 소수부분Str} } /** *숫자를 중국어 RMB 발음으로 변환*@return 중국어 RMB 발음의 문자열 형식을 반환합니다.*/ public String toHanStr(){ String[] results = new String[9] //4자리마다 4자리로 나누어진 숫자 문자열 String[]을 임시로 저장하는 데 사용됨 resultStrs = new String[9];//4자리 분할 후 변환된 RMB 판독값을 임시로 저장하는 데 사용됩니다. String result = "";//최종 변환 결과 String[] DivideStr = DivideNum(); //부동 소수점 숫자가 분해되는 긴 부분과 소수 부분 문자열을 가져옵니다. 첫 번째 배열 요소는 정수 부분 문자열이고 두 번째 요소는 소수 부분 문자열입니다. results[8] = DivideStr[1]; i =divideStr[0].length(), j=8; i>0&&j>0 ; i-=4,j--){ try{ 결과[j-1] = DivideStr[0].substring(i-4 , 나); }catch(예외 e){ results[j-1] = DivideStr[0].substring(0, i); } } if(results[8] == null){ resultStrs[8] = "전체"; }else if(results[8].charAt(1) == '0'){ resultStrs[8] = hanArr[results[8].charAt(0) - 48] + "角"; //ASCII 코드와 hanArr 배열에 따라 숫자를 중국어 대문자로 변경}else{ resultStrs[8] = hanArr[results[8].charAt(0) - 48] + "角" + hanArr[ 결과[8].charAt(1) - 48] + "점" } for(int i=0; i<8; i++){ if(results[i] != null){ resultStrs[i] = ""; resultStrs[i] += hanArr[results[i].charAt(0) - 48] + unitArr[results[i].length() - 1]; //(int j=1; j<results[i].length(); j++에 대한 ASCII 코드와 배열 길이를 기준으로 숫자 단위를 선택합니다. ) if(results[i].charAt(j-1) == '0' && 결과[i].charAt(j) != '0') resultStrs[i] += "zero" + hanArr[results[i ].charAt(j) - 48] + unitArr[results[i].length() - 1 - j]; //ASCII 코드와 배열 길이를 기준으로 숫자 단위 선택 else if(results[i].charAt(j) != '0' ) resultStrs[i] += hanArr[results[i].charAt(j) - 48] + unitArr[results[i].length() - 1 - j] } } for (int i=0; i<8; i++ ); if(resultStrs[i] != null){ 결과 += resultStrs[i] + unitArrs[i] } } 결과 += resultStrs[8];RmbTest.java
public class RmbTest{ public static void main(String[] args) { double l; byte[] bye = new byte[50]("변환할 RMB 금액을 입력하세요:"); { System .in.read(bye); }catch(Exception e){} String s = new String(bye); l = Double.parseDouble(s); s = r.toHanStr(); System.out.println(s);이상이 이 글의 전체 내용입니다. Java를 배우는 모든 분들께 도움이 되었으면 좋겠습니다.