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 = “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];
}
}