java-練習 把數字轉化為錢幣

來源:互聯網
上載者:User

標籤:amp   ati   for   enum   部分   turn   dex   substr   and   

傻瓜版

寫到最後懶得寫小數部分了,反正邏輯都是一樣繞。

package chapter4;public class FloatToRmb {public static void main(String[] args) {double f = 1006.789;String[] ds = num(f);String begin = ds[0];String after = ds[1];String str = "";if (begin.length() > 0)str = handleBefore(begin);if (after.length() > 0) {str = str + handleAfter(after);}System.out.println(str);}public static String handleBefore(String str) {// 1006String str1 = "";if (str.length() > 0) {// 2{if (!str.substring(str.length() - 1).equals("0"))// 6str1 = str.substring(str.length() - 1) + "元";str = str.substring(0, str.length() - 1);System.out.println(str.length());}if (str.length() > 0) {// 2if (!str.substring(str.length() - 1).equals("0"))// 6{str1 = str.substring(str.length() - 1) + "shi" + str1;} else {str1 = "零" + str1;}str = str.substring(0, str.length() - 1);}if (str.length() > 0) {// 2if (!str.substring(str.length() - 1).equals("0"))// 6{str1 = str.substring(str.length() - 1) + "bai" + str1;} else if (!str1.startsWith("零")) {str1 = "零" + str1;}str = str.substring(0, str.length() - 1);}if (str.length() > 0) {// 2if (!str.substring(str.length() - 1).equals("0"))// 6str1 = str.substring(str.length() - 1) + "qian" + str1;}return str1;}public static String toChineseNum(int a) {String str = "";switch (a) {case 1:str = "壹";case 2:str = "貳";case 3:str = "三";case 4:str = "肆";case 5:str = "伍";case 6:str = "陸";case 7:str = "柒";case 8:str = "捌";case 9:str = "久";}return str;}public static String handleAfter(String str) {return "2";}public static String[] num(double d) {String[] ds = { "", "" };String str = String.valueOf(d);int num = str.indexOf(".");ds[0] = str.substring(0, num);ds[1] = str.substring(num + 1);return ds;}}

  改進版

思路想好了

對所有數值,都轉換成  xxxxxxx的格式

即 1006 轉為 1006000,10067轉為1006700 ,6.7轉為0006700;

對任意7位元,插入字元

String 1 ="1234567";

String 2 = "千百十元角分毫"

str="1千2百3十4元5分6角7毫";

 

package chapter4;public class FloatToRmb {public static void main(String[] args) {double d=10.078;int a=(int)(d*1000);//1066789String str=String.valueOf(a);if(str.length()<=1){str="零";}while(str.length()!=7){str="0"+str;}String str1="千百十元角分毫";//3String str2="";for(int i=str.length();i>0;i--){if(!str.substring(i-1,i).equals("0")){str2=str.substring(i-1,i)+str1.substring(i-1, i)+str2;}else if (str.substring(i-1,i).equals("0")&&(!str2.startsWith("零"))&&((i-1)<3)&&(!str.startsWith("0"))&&!str2.startsWith("元")//元){//indexof 似乎不能識別中文?System.out.println(str1.indexOf("元")+","+(i-1));str2="零"+str2;}else if(!str2.startsWith("元")&&((i-1)==3)){str2="元"+str2;}System.out.println(str.substring(i-1, i));str1=str1.substring(0, i-1);str=str.substring(0, i-1);}System.out.println(str2);}}

  邏輯判斷的部分太垃圾了。。。。還需要改進

java-練習 把數字轉化為錢幣

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.