生活随笔
收集整理的這篇文章主要介紹了
JAVA疯狂讲义 第四版 课后习题 第四章 4.5
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
出來(lái)混總要還的..
最近在把《瘋狂JAVA講義》再看一遍,書(shū)真的是要多讀幾遍 每次讀都會(huì)有不同的收獲和感受
以往我都只是看看課后題 從沒(méi)做過(guò),所以這次我打算做一遍一些有意義的題目
應(yīng)該是比較low的,但是畢竟是個(gè)學(xué)習(xí)的過(guò)程,記錄一下,以后再翻開(kāi)來(lái)看看。
題目是:編寫程序,將浮點(diǎn)數(shù)轉(zhuǎn)換成人命幣讀法的字符串。
直接上代碼 也比較簡(jiǎn)單。稍稍改編了一下。
package chapter4;import java.util.Arrays;
import java.util.Scanner;
public class ChangeRMBFromFloatToString {
private String[] hanArr = {
"零",
"壹",
"貳",
"叁",
"肆",
"伍",
"陸",
"柒",
"捌",
"玖"};
private String[] unitArr = {
"分",
"角",
"元",
"十",
"百",
"千",
"萬(wàn)",
""};
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(
"請(qǐng)輸入要換算的數(shù)字,整數(shù)部分請(qǐng)不要超過(guò)五位數(shù)哦哦!");
double inputNumber = scanner.nextDouble();String[] zhengPart = nr.divide(inputNumber);String integerPart = zhengPart[
0];String decimalPart = zhengPart[
1];
if(integerPart.length() >
5) {System.
out.println(
"過(guò)長(zhǎng)了 請(qǐng)重新輸入");}
else {System.
out.println(
"整數(shù)部分:"+nr.toHanStr(zhengPart[
0],
1));System.
out.println(
"分?jǐn)?shù)部分:"+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));}}}
}
結(jié)果
總結(jié)
以上是生活随笔為你收集整理的JAVA疯狂讲义 第四版 课后习题 第四章 4.5的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。