生活随笔
收集整理的這篇文章主要介紹了
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[]
divide(
double num){
long zheng = (
long)num;
long xiao = Math.round((num - zheng) *
100);
return new String[]{zheng +
"", String.valueOf(xiao)}; }
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;}
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的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。