자바 금액 변환아라비아 숫자 를 중국 대문자 로 바꾸다

이 문 제 를 나 는 인터넷 에서 여러 가지 방법 을 보 았 는데, 나 자신 도 한 가지 방법 을 생각해 냈 다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/*
 *   :
 * 1.     ,           。
 * 2.      IO  BufferedReader        。
 * 3.               ,                  。
 * 4.            ,                        ,
 *                     。
 * 5.              。
 */
public class MoneyConvert {
	
	//                 
	static String[] cnNumTab = {" ", " ", " ", " ", " ", " ", " ", " "," ", " "};
	static String[] integerUnitTab = {"", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " "};
	static String[] decimalUnitTab = {" ", " ", " "};
	
	public static void main(String[] args) {
		System.out.println("     :");
		
		//     ,           
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		try {
			//                     
			String str = in.readLine();
			String[] strArr = str.split("\\.");
			
			//                    
			char[] chNumArrInteger = strArr[0].toCharArray();
			
			//                
			String[] convertIntegerNum = convertUpper(chNumArrInteger);
			
			//             
			StringBuilder container = new StringBuilder("  ");
			
			//                   
			for(int x = convertIntegerNum.length -1, y = 0; x >=0; x--, y++) {
				String num = convertIntegerNum[x];
				if(num.equals(" ")) {
					//             ,      
					if(y == 4 || y == 8)
						container.insert(0, num+integerUnitTab[y]);
					else
						container.insert(0, num);
				} else {
					container.insert(0, num+integerUnitTab[y]);
				}
			}
			
			//      ,                 
			if(strArr.length == 2) {
				int len = container.length();
				container.replace(len - 2, len, " ");
				
				char[] chNumArrDecimal = strArr[1].toCharArray();
				String[] convertDecimalNum = convertUpper(chNumArrDecimal);
				
				//                   
				for (int x = 0; x < convertDecimalNum.length; x++) {
					container.append(convertDecimalNum[x]+decimalUnitTab[x]);
				}
			}
			
			//    
			String put = container.toString();
			put = put.replaceAll("  + ", "  ");
			put = put.replaceAll("  + ", "  ");
			put = put.replaceAll("  + ", "  ");
			put = put.replaceAll("  + ", "  ");
			put = put.replaceAll(" +", " ");
			put = put.replaceAll("  ", " ");
			put = put.replaceAll("   ", " ");
			put = put.replaceAll("  ", " ");
			put = put.replaceAll("  ", " ");
			
			//       
			System.out.println("         :"+put);
			
		} catch (NumberFormatException e) {
			System.out.println("    ,          ");
		} catch (IOException e) {
			e.printStackTrace();
		}
		//                 ,            
	}
	
	//                
	public static String[] convertUpper(char[] arr) {
		String[] convertNum = new String[arr.length];
		for(int x = 0; x < arr.length; x++) {
			int num = Integer.parseInt(arr[x]+"");
			convertNum[x] = cnNumTab[num];
		}
		
		return convertNum;
	}
	
}

방법 이 좀 번 거 로 운 것 같 습 니 다. 아직 공부 중 입 니 다. 잘 쓰 지 못 했 을 수도 있 습 니 다.

좋은 웹페이지 즐겨찾기