欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java實(shí)現(xiàn)數(shù)字金額轉(zhuǎn)中文大寫金額的完整過(guò)程

 更新時(shí)間:2025年04月15日 09:30:50   作者:InsightFuture  
本程序?qū)崿F(xiàn)將用戶輸入的整數(shù)金額(0~9999999)轉(zhuǎn)換為符合財(cái)務(wù)規(guī)范的中文大寫金額,并自動(dòng)添加單位符號(hào)(如“萬(wàn)”、“仟”、“佰”等),例如輸入 1234,輸出 壹仟貳佰叁拾肆元,文中通過(guò)代碼示例講解的非常詳細(xì),需要的朋友可以參考下

一、功能概述

本程序?qū)崿F(xiàn)將用戶輸入的整數(shù)金額(0~9999999)轉(zhuǎn)換為符合財(cái)務(wù)規(guī)范的中文大寫金額,并自動(dòng)添加單位符號(hào)(如“萬(wàn)”、“仟”、“佰”等)。例如輸入 1234,輸出 壹仟貳佰叁拾肆元

二、核心代碼解析

1. 輸入驗(yàn)證模塊

int inputMoney;
while (true) {
    System.out.println("請(qǐng)輸入金額:");
    int temp = sc.nextInt();
    if (temp >= 0 && temp <= 9999999) {
        inputMoney = temp;
        break;
    } else {
        System.out.println("輸入的金額有誤,請(qǐng)重新輸入!");
    }
}
  • 功能:確保輸入金額在合法范圍(0~9,999,999)
  • 亮點(diǎn):使用無(wú)限循環(huán)強(qiáng)制用戶輸入合法值
  • 風(fēng)險(xiǎn)點(diǎn):未處理非數(shù)字輸入(如輸入字母會(huì)崩潰)

2. 數(shù)字拆分與大寫轉(zhuǎn)換

String result = "";
while(true) {
    int temp = inputMoney % 10;   // 取末位數(shù)字
    inputMoney = inputMoney / 10; 
    String resultString = toBigChange(temp); // 轉(zhuǎn)換為大寫
    result = resultString + result; // 逆序拼接
    if (inputMoney == 0) break;
}
  • 算法邏輯
    • 通過(guò)取余操作 %10 獲取數(shù)字的末位
    • 通過(guò)整除 /10 移除已處理的末位
    • 逆序拼接保證數(shù)字順序正確

3. 補(bǔ)零處理(七位對(duì)齊)

int len = 7 - result.length();
for(int i = 0; i < len; i++) {
    result = "零" + result;
}
  • 示例:輸入 123 → 補(bǔ)零為 零零零壹貳叁
  • 作用:為后續(xù)添加單位符號(hào)提供統(tǒng)一長(zhǎng)度基礎(chǔ)

4. 添加金額單位

public static String addSymbolHandle(String string) {
    String[] symbolArray = {"佰", "拾", "萬(wàn)", "仟", "佰", "拾", "元"};
    String resultString = "";
    for(int i = 0; i < string.length(); i++) {
        char s = string.charAt(i);
        resultString += s + symbolArray[i];
    }
    return resultString;
}

單位對(duì)照表

索引 0   1    2    3    4    5    6
    佰  拾   萬(wàn)   仟   佰   拾   元
  • 輸出示例零佰零拾零萬(wàn)壹仟貳佰叁拾肆元

三、關(guān)鍵方法說(shuō)明

1. 數(shù)字轉(zhuǎn)大寫方法

public static String toBigChange(int number) {
    String[] bigArray = {"零", "壹", "貳", "叁", "肆", "伍", "陸", "柒", "捌", "玖"};
    return bigArray[number];
}
  • 映射規(guī)則:直接通過(guò)數(shù)組下標(biāo)轉(zhuǎn)換
  • 注意事項(xiàng):依賴輸入驗(yàn)證確保 number 在0~9之間

四、運(yùn)行示例演示

輸入1234處理流程

  • 拆分?jǐn)?shù)字:1 2 3 4
  • 轉(zhuǎn)大寫:壹 貳 叁 肆
  • 補(bǔ)零:零零零壹貳叁肆
  • 加單位:零佰零拾零萬(wàn)壹仟貳佰叁拾肆元

最終輸出

零零零壹貳叁肆 
零佰零拾零萬(wàn)壹仟貳佰叁拾肆元 

五、代碼優(yōu)化建議

1. 輸入驗(yàn)證增強(qiáng)

try {
    int temp = sc.nextInt();
} catch (InputMismatchException e) {
    System.out.println("請(qǐng)輸入數(shù)字!");
    sc.nextLine(); // 清除非數(shù)字輸入
    continue;
}

2. 單位順序調(diào)整

更符合中文習(xí)慣的單位順序:

String[] symbolArray = {"佰", "拾", "萬(wàn)", "仟", "佰", "拾", "元"};

3. 補(bǔ)零邏輯優(yōu)化

// 使用String.format格式化補(bǔ)零
result = String.format("%07d", Integer.parseInt(result));

六、擴(kuò)展思考

  • 如何支持更大金額(如億級(jí))?

    • 增加單位數(shù)組:{"億", "仟", "佰", "拾", "萬(wàn)", ...}
  • 如何處理小數(shù)金額(元角分)?

    • 拆分整數(shù)和小數(shù)部分分別處理
    • 補(bǔ)充單位:"角", "分"
  • 如何去除多余零值

    • 正則替換:result.replaceAll("零[仟佰拾]", "零")

七、源碼

package com.insightfuture.string;

import java.util.Scanner;

public class StringTest6 {
    public static void main(String[] MakeItPossible) {
        // 整數(shù)拆解
        Scanner sc = new Scanner(System.in);
        int inputMoney;
        while (true) {
            System.out.println("請(qǐng)輸入金額:");
            int temp = sc.nextInt();
            if (temp >= 0 && temp <= 9999999) {
                inputMoney = temp;
                break;
            } else {
                System.out.println("輸入的金額有誤,請(qǐng)重新輸入!");
            }
        }

        // 將金額拆分后調(diào)用方轉(zhuǎn)成大寫金額,然后拼接處理
        String result = "";
        while(true) {
            int temp = inputMoney % 10;   // 得到最左邊的一個(gè)數(shù)
            inputMoney = inputMoney / 10; // 刪除最左邊的一個(gè)數(shù)
            // 將這個(gè)數(shù)傳給函數(shù)得到這個(gè)數(shù)的大寫形式
            String resultString = toBigChange(temp);
            // 將返回的大寫字母憑借,注意順序(拆是從右到左,拼接則是從左到右)
            result = resultString + result;
            if (inputMoney == 0) {
                // 處理的數(shù)據(jù)到 0 了, 表示拆完了,直接終止!
                break;
            }
        }
        // 七位金額數(shù)值,不足左邊補(bǔ)零
        int len = 7 - result.length();
        for(int i = 0; i < len; i++) {
            result = "零" + result;
        }
        System.out.println(result + " ");
        System.out.println(addSymbolHandle(result) + " ");
    }

    /**
     * toBigChange方法:根據(jù)傳入的數(shù)字返回該數(shù)字的大寫
     * @param number
     * @return String
     */
    public static String toBigChange(int number) {
        String[] bigArray = {"零", "壹", "貳", "叁", "肆", "伍", "陸", "柒", "捌", "玖"};
        return bigArray[number];
    }

    /**
     * addSymbolHandle方法:根據(jù)金額插入單位
     * @param string
     * @return String
     */
    public static String addSymbolHandle(String string) {
        String[] symbolArray = {"佰", "拾", "萬(wàn)", "仟", "佰", "拾", "元"};
        String resultString = "";
        for(int i = 0; i < string.length(); i++) {
            // 1. 將字符串才分成 字符
            char s = string.charAt(i);
            // 2. 將字符拼接金額單位,累加后賦值給新的字符串存儲(chǔ)
            resultString = resultString + s + symbolArray[i];
        }
        return resultString;
    }
}

八、總結(jié)

通過(guò)這個(gè)案例,我們掌握了:

  • 數(shù)字拆解與逆序拼接的技巧
  • 中文金額單位的添加規(guī)則
  • 輸入驗(yàn)證的基本實(shí)現(xiàn)方法

以上就是Java實(shí)現(xiàn)從數(shù)字到中文大寫金額的完整過(guò)程的詳細(xì)內(nèi)容,更多關(guān)于Java數(shù)字轉(zhuǎn)中文大寫金額的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Eclipse引用XSD實(shí)現(xiàn)XML配置文件提示標(biāo)簽的方法

    Eclipse引用XSD實(shí)現(xiàn)XML配置文件提示標(biāo)簽的方法

    今天小編就為大家分享一篇關(guān)于Eclipse引用XSD實(shí)現(xiàn)XML配置文件提示標(biāo)簽的方法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-03-03
  • 淺談線程的幾種可用狀態(tài)

    淺談線程的幾種可用狀態(tài)

    下面小編就為大家?guī)?lái)一篇淺談線程的幾種可用狀態(tài)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-09-09
  • Java將Word轉(zhuǎn)換成PDF的常用用法

    Java將Word轉(zhuǎn)換成PDF的常用用法

    Java開(kāi)發(fā)人員在處理文檔轉(zhuǎn)換時(shí),常常需要將Word或Excel文檔轉(zhuǎn)換為PDF格式,以便于更好地保持格式一致性、便于分發(fā)和打印,這篇文章主要給大家介紹了關(guān)于Java將Word轉(zhuǎn)換成PDF的常用用法,需要的朋友可以參考下
    2024-08-08
  • Java程序連接數(shù)據(jù)庫(kù)的常用的類和接口介紹

    Java程序連接數(shù)據(jù)庫(kù)的常用的類和接口介紹

    這篇文章主要介紹了Java程序連接數(shù)據(jù)庫(kù)的常用的類和接口,包括Connection類和Statement類等,需要的朋友可以參考下
    2015-10-10
  • SpringBoot登錄驗(yàn)證碼實(shí)現(xiàn)過(guò)程詳解

    SpringBoot登錄驗(yàn)證碼實(shí)現(xiàn)過(guò)程詳解

    這篇文章主要介紹了SpringBoot登錄驗(yàn)證碼實(shí)現(xiàn)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Mybatis中OGNL表達(dá)式的具體使用

    Mybatis中OGNL表達(dá)式的具體使用

    OGNL是一種簡(jiǎn)潔、靈活的表達(dá)式語(yǔ)言,本文就來(lái)介紹一下OGNL的概念以及在Mybatis中的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-12-12
  • MyBatis-Plus Generator配置詳解

    MyBatis-Plus Generator配置詳解

    這篇文章主要介紹了MyBatis-Plus Generator配置詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Spring框架學(xué)習(xí)之Spring?@Autowired實(shí)現(xiàn)自動(dòng)裝配的代碼

    Spring框架學(xué)習(xí)之Spring?@Autowired實(shí)現(xiàn)自動(dòng)裝配的代碼

    自動(dòng)裝配就是說(shuō),你不用手動(dòng)實(shí)現(xiàn)bean之間的組合關(guān)系,只要使用了@Autowired注解,程序就會(huì)自動(dòng)的注入這個(gè)需要的bean,前提是你的Spring容器有這個(gè)bean,這篇文章主要介紹了Spring?@Autowired實(shí)現(xiàn)自動(dòng)裝配,需要的朋友可以參考下
    2021-12-12
  • Java如何使用jar命令打包

    Java如何使用jar命令打包

    把多個(gè)文件打包成一個(gè)壓縮包——這個(gè)壓縮包和WinZip的壓縮格式是一樣的,區(qū)別在于jar壓縮的文件默認(rèn)多一個(gè)META-INF的文件夾,該文件夾里包含一個(gè)MANIFEST.MF的文件,本文給大家介紹Java如何使用jar命令打包,感興趣的朋友跟隨小編一起看看吧
    2023-10-10
  • java獲取網(wǎng)絡(luò)圖片上傳到OSS的方法

    java獲取網(wǎng)絡(luò)圖片上傳到OSS的方法

    這篇文章主要為大家詳細(xì)介紹了java獲取網(wǎng)絡(luò)圖片上傳到OSS,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-10-10

最新評(píng)論