最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

一、功能概述

本程序實現(xiàn)將用戶輸入的整數(shù)金額(0~9999999)轉換為符合財務規(guī)范的中文大寫金額,并自動添加單位符號(如“萬”、“仟”、“佰”等)。例如輸入 1234,輸出 壹仟貳佰叁拾肆元。

二、核心代碼解析

1. 輸入驗證模塊

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

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

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

3. 補零處理(七位對齊)

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

4. 添加金額單位

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

單位對照表

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

三、關鍵方法說明

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

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

四、運行示例演示

輸入1234處理流程

  • 拆分數(shù)字:1 2 3 4
  • 轉大寫:壹 貳 叁 肆
  • 補零:零零零壹貳叁肆
  • 加單位:零佰零拾零萬壹仟貳佰叁拾肆元

最終輸出

零零零壹貳叁肆 
零佰零拾零萬壹仟貳佰叁拾肆元 

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

1. 輸入驗證增強

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

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

更符合中文習慣的單位順序:

String[] symbolArray = {"佰", "拾", "萬", "仟", "佰", "拾", "元"};

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

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

六、擴展思考

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

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

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

    • 正則替換: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("請輸入金額:");
            int temp = sc.nextInt();
            if (temp >= 0 && temp <= 9999999) {
                inputMoney = temp;
                break;
            } else {
                System.out.println("輸入的金額有誤,請重新輸入!");
            }
        }

        // 將金額拆分后調(diào)用方轉成大寫金額,然后拼接處理
        String result = "";
        while(true) {
            int temp = inputMoney % 10;   // 得到最左邊的一個數(shù)
            inputMoney = inputMoney / 10; // 刪除最左邊的一個數(shù)
            // 將這個數(shù)傳給函數(shù)得到這個數(shù)的大寫形式
            String resultString = toBigChange(temp);
            // 將返回的大寫字母憑借,注意順序(拆是從右到左,拼接則是從左到右)
            result = resultString + result;
            if (inputMoney == 0) {
                // 處理的數(shù)據(jù)到 0 了, 表示拆完了,直接終止!
                break;
            }
        }
        // 七位金額數(shù)值,不足左邊補零
        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 = {"佰", "拾", "萬", "仟", "佰", "拾", "元"};
        String resultString = "";
        for(int i = 0; i < string.length(); i++) {
            // 1. 將字符串才分成 字符
            char s = string.charAt(i);
            // 2. 將字符拼接金額單位,累加后賦值給新的字符串存儲
            resultString = resultString + s + symbolArray[i];
        }
        return resultString;
    }
}

八、總結

通過這個案例,我們掌握了:

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

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

相關文章

  • springMVC?MultipartFile上傳圖片時如何修改圖片大小

    springMVC?MultipartFile上傳圖片時如何修改圖片大小

    這篇文章主要介紹了springMVC?MultipartFile上傳圖片時如何修改圖片大小問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • java學習教程之常量折疊詳解

    java學習教程之常量折疊詳解

    這篇文章主要給大家介紹了關于java學習教程之常量折疊的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用java具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-09-09
  • 深入分析Spring BeanDefinition的構造元信息

    深入分析Spring BeanDefinition的構造元信息

    Bean Definition是一個包含Bean元數(shù)據(jù)的對象,它描述了如何創(chuàng)建Bean實例、Bean屬性的值以及Bean之間的依賴關系,本文將帶大家深入分析Spring BeanDefinition的構造元信息,需要的朋友可以參考下
    2024-01-01
  • mybatis整合springboot報BindingException:Invalid?bound?statement?(not?found)異常解決

    mybatis整合springboot報BindingException:Invalid?bound?stateme

    這篇文章主要給大家介紹了關于mybatis整合springboot報BindingException:Invalid?bound?statement?(not?found)異常的解決辦法,這個錯誤通常是由于Mapper文件中的statement?id與Java代碼中的方法名不一致導致的,需要的朋友可以參考下
    2024-01-01
  • 解決Springboot2.1.x配置Activiti7單獨數(shù)據(jù)源問題

    解決Springboot2.1.x配置Activiti7單獨數(shù)據(jù)源問題

    這篇文章主要介紹了Springboot2.1.x配置Activiti7單獨數(shù)據(jù)源問題,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09
  • Mybatis動態(tài)SQL?foreach批量操作方法

    Mybatis動態(tài)SQL?foreach批量操作方法

    這篇文章主要介紹了Mybatis動態(tài)SQL?foreach批量操作方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • Maven配置項目依賴使用本地倉庫的方法匯總(小結)

    Maven配置項目依賴使用本地倉庫的方法匯總(小結)

    這篇文章主要介紹了Maven配置項目依賴使用本地倉庫的方法匯總(小結),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • Java模擬實現(xiàn)斗地主發(fā)牌

    Java模擬實現(xiàn)斗地主發(fā)牌

    這篇文章主要為大家詳細介紹了Java實現(xiàn)模擬斗地主發(fā)牌,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • 關于RowBounds分頁原理、RowBounds的坑記錄

    關于RowBounds分頁原理、RowBounds的坑記錄

    這篇文章主要介紹了關于RowBounds分頁原理、RowBounds的坑記錄,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • SpringBoot實現(xiàn)多數(shù)據(jù)源的實戰(zhàn)案例

    SpringBoot實現(xiàn)多數(shù)據(jù)源的實戰(zhàn)案例

    這篇文章主要介紹了SpringBoot實現(xiàn)多數(shù)據(jù)源的實戰(zhàn)案例,文中通過示例代碼和圖文展示介紹的非常詳細,對大家的學習或工作有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2024-01-01

最新評論

博客| 海丰县| 塔城市| 南溪县| 即墨市| 田东县| 临西县| 佛坪县| 曲阜市| 郸城县| 临潭县| 阜阳市| 滕州市| 乐业县| 普格县| 宣化县| 林口县| 图们市| 新安县| 应城市| 双牌县| 巫山县| 昭苏县| 嵩明县| 江安县| 济南市| 光山县| 罗田县| 承德县| 兴化市| 犍为县| 霍山县| 塔城市| 磐安县| 武威市| 高青县| 邢台县| 荔浦县| 闵行区| 合作市| 乌拉特前旗|