日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JAVA疯狂讲义 第四版 课后习题 第四章 4.5

發布時間:2023/12/10 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JAVA疯狂讲义 第四版 课后习题 第四章 4.5 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

出來混總要還的..
最近在把《瘋狂JAVA講義》再看一遍,書真的是要多讀幾遍 每次讀都會有不同的收獲和感受
以往我都只是看看課后題 從沒做過,所以這次我打算做一遍一些有意義的題目
應該是比較low的,但是畢竟是個學習的過程,記錄一下,以后再翻開來看看。
題目是:編寫程序,將浮點數轉換成人命幣讀法的字符串。
直接上代碼 也比較簡單。稍稍改編了一下。

package chapter4;import java.util.Arrays; import java.util.Scanner;public class ChangeRMBFromFloatToString {private String[] hanArr = {"零","壹","貳","叁","肆","伍","陸","柒","捌","玖"};private String[] unitArr = {"分","角","元","十","百","千","萬",""};//private String[] unitDecimalArr = {"分"}//這里直接用long保留整數部分了private String[] divide(double num){long zheng = (long)num;long xiao = Math.round((num - zheng) * 100);return new String[]{zheng + "", String.valueOf(xiao)}; }/** 這里設計使用一個flag來做分割 整數部分和分數部分* 本來想把單位分為兩個數組 在處理的時候 將unitArr這個數組分成* 兩個一個是{"元","十","百","千","萬"} 一個是{"分","角"}* 在處理不同的部分時傳入 不同的數組* 程序 還是不完整 要在result那邊修修補補* 等有空了再改改* */private String toHanStr(String numStr,int flag){String result = "";int numLen = numStr.length();if(flag == 1) {for (int i = 0 ; i < numLen ; i++ ){int num = numStr.charAt(i) - 48;if ( i != numLen - 1 && num != 0){result += hanArr[num] + unitArr[numLen - i + 1];}else {result += hanArr[num];}}result = result + unitArr[2];}else {for (int i = 0 ; i < numLen ; i++ ){int num = numStr.charAt(i) - 48;if ( i != numLen - 1 && num != 0){result += hanArr[num] + unitArr[numLen - i -1];}else {result += hanArr[num];}}result = result + unitArr[0];}return result;}/** 去除多個零* 運用方法是遍歷每個字符* 前一個和后一個 甚至后幾個做對比* 因為這里我們有千 萬 這種單位做隔,因此僅會出現 連續多個零的情況* 如果相同 則跳過* 如果不同 則將 j的值 賦值給i 即i也跳過那么多個重復的零* 最后將newString返回* */public static String removeZero(String oldString) {String newString = "";int length = oldString.length();int i = 0;int j = i + 1;newString = newString + oldString.charAt(i);for(;j<length;) {if(oldString.charAt(i)==oldString.charAt(j)) {j = j+1;}else {i = j;j += 1;newString = newString + oldString.charAt(i);}}return newString;}public static void main(String[] args) { ChangeRMBFromFloatToString nr = new ChangeRMBFromFloatToString();Scanner scanner = new Scanner(System.in);while(true) {System.out.println("請輸入要換算的數字,整數部分請不要超過五位數哦哦!");double inputNumber = scanner.nextDouble();String[] zhengPart = nr.divide(inputNumber);String integerPart = zhengPart[0];String decimalPart = zhengPart[1];//加個判斷吧 整數長度不能過長if(integerPart.length() > 5) {System.out.println("過長了 請重新輸入");}else {System.out.println("整數部分:"+nr.toHanStr(zhengPart[0], 1));System.out.println("分數部分:"+nr.toHanStr(zhengPart[1], 0));String all = nr.toHanStr(zhengPart[0], 1) + nr.toHanStr(zhengPart[1], 0);System.out.println(all);System.out.println(removeZero(all));}}} }

結果

總結

以上是生活随笔為你收集整理的JAVA疯狂讲义 第四版 课后习题 第四章 4.5的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。