1. 程式人生 > 其它 >Java資料型別與型別轉換

Java資料型別與型別轉換

技術標籤:Java陣列Java的運算子演算法

將數字轉換為大寫金額

package cn.tx.demo2;

import java.util.Scanner;

public class Demo1 {
public static void main(String[] args){
// 分析
/**
* 1. 根據 . 拆分,拆分後結果是 1324 32
* 2. 先處理 1324
* 2.1 獲取到 1 根據數字1轉換成大寫金額 壹,再獲取到數字3,轉換成大寫叄
* 2.2 壹叄貳肆
* 2.3 填寫相關的單位(仟 佰)
*
/
System.out.print(“請輸入想轉換的數字:”);

//定義數字,把該數字轉換成大寫漢字金額
Scanner input=new Scanner(System.in);
String num=input.next();
//String num=String.valueOf(a);
//String num=“1324.32”;
//拆分 把.進行轉義
String[] arrs=num.split("\.");
//通過陣列的索引,獲取元素
//beginStr=“1324”;
String beginStr=arrs[0];
//
******************************
//定義結果的字串
String result="";
// 先處理beginStr 思路:獲取到每一個數字,轉換成大寫漢字
// beginStr = “1324”;
// 編寫for迴圈
for (int i=0;i<beginStr.length();i++){
//每迴圈一次,獲取到對應位置的字元
char c=beginStr.charAt(i);
//把c 轉換成字串
String s=String.valueOf©;
//把字串轉換為數字
int n=Integer.parseInt(s);
//通過方法獲取漢字
String str=getStr(n);
//字串拼接
result+=str;

        //處理單位的問題
        //獲取到beginStr字串的長度
        int len =beginStr.length()-1-i;
        //獲取單位
        String unit=getUnit(len+2);
        //把單位拼接上
        result+=unit;

    }

if (arrs.length>1){
//處理小數點後面的數字
//endStr=“32”;
String endStr=arrs[1];
//迴圈遍歷
for (int i=0;i<endStr.length();i++){
//獲取到字元
char c=endStr.charAt(i);
//轉換數字
int n=Integer.parseInt(String.valueOf©);
//獲取對應的漢字
String str=getStr(n);
//拼接
result+=str;
//再獲取單位
int len=endStr.length()-i;
//獲取單位
String unit=getUnit(len-1);
//連線字串
result+=unit;
}
}

//輸出結果
System.out.println(“轉換後的漢字:”+result);

}
/**
 * 傳入數字,返回該數字所對應的漢字
 * 例如:
 *      num = 1  返回壹
 *      num=7 返回柒
 * @param num
 * @return
 */

public static String getStr(int num){
//寫一個數組
String[] strs={“零”, “壹”, “貳”, “叄”, “肆”, “伍”, “陸”, “柒”, “捌”, “玖”};
//把num作為索引
return strs[num];
}

/**

  • 獲取單位的方法
  • @param num
  • @return
    */
    public static String getUnit(int num){
    String[] strs={“分”, “角”, “圓”, “拾”, “佰”, “仟”, “萬”, “拾”, “佰”, “仟”, “億”};
    return strs[num];
    }
    }

在這裡插入圖片描述