Java字符串应用场景:数字金额转换成汉字金额

文章目录

  • Java字符串应用场景:数字金额转换成汉字金额
  • 前言
  • 一、String简单介绍
  • 二、字符串在开发中的应用场景
  • 三、金额转换
    • 3.1解题思路
    • 3.2代码详解
    • 3.3运行结果
    • 3.4.需要注意的点
  • 四、拓展知识
    • 4.1数组查表法
    • 4.2 charAt(i)函数和str.charAt(i)函数
  • 总结

前言

正常的数字金额或汉字简写由于笔画简单,容易被涂改伪篡,所以一般文书和商业财务票据上的数字都要采用汉字数码大写:中文金额数字大写分别为“壹、贰、叁、肆、伍、陆、柒、捌、玖、拾、佰、仟、万(萬)、亿、元(圆)、角、分、零、整(正)”。(“柒”在当时作为“漆”和“桼”的异体字,后来出现分化,将“柒”定为数字“柒”的大写,“桼”并入“漆”定为“刷”的意思。)所以今天小编就出一期关于字符串的应用场景之一:将简单的数字金额转换成大写的汉字金额~

一、String简单介绍

  1. String 表示字符串类型,属于引用数据类型,在使用之前需要进行初始化
  2. 在Java程序中用双引号的都是字符串类型,而字符类型char是用单引号括起来的
  3. String是Java定义好的一个类。定义在java.lang包中,所以使用的时候不需要导包(java.lang包是java核心包,已经有的)
  4. Java程序中,所有的字符串文字(例如"abcdefg"),都被实为String类的对象。
  5. 字符串不可变,它们的值在创建后不能被更改

二、字符串在开发中的应用场景

字符串的应用场景也很广泛,例如在开发中,我们常常会碰见字符串的比较功能(用户登录界面)、字符串的替换功能(在聊天界面中敏感词的替换)、字符串的转换功能(数字金额转换成汉字金额),还有一些字符串的截取查找切割检索等等


三、金额转换

字符串应用场景之一实例化:利用数组查表法,实现数字金额转换成汉字金额,输入一个数字金额(例如:2135)实现转成汉字的大写的汉字数码(零佰零拾零万贰千壹佰叁拾伍元)

3.1解题思路

  • 第一步:键盘录入让用户输入一个数字金额,并做数据的校验,判断是否合理输入,合理进行下一步,不合理重新录入(假设金额录入为:1234)
  • 第二步:将录入金额的每一位数字取出来
  • 第三步:定义一个方法,利用数组查表法,用得到的数字作为索引获取相对应的大写中文
  • 第四步:将得到的汉字拿出来,进行拼接,注意拼接的时候要反着拼接
  • 第五步:判断汉字个数是否到达了七位 没有到达进行补零
  • 第六步:创建一个数组用于存储金额单位:“佰”,“拾”,“万”,“千”,“佰”,“拾”,“元”
  • 第七步:遍历数组,得到每一位单位,将单位插入到已经完成补零的金额中 ,打印输出

3.2代码详解

package cn;
import java.util.Scanner;public class Test2 {//    目标:实现金额的转换  1234  -->   零佰零拾零万壹千贰佰叁拾肆元public static void main(String[] args) {//    1.键盘录入金额 要做数据的校验  判断是否合理  合理继续执行下一步 不合理重新录入Scanner sc = new Scanner(System.in);int money;while (true) {System.out.println("请输入金额:");money = sc.nextInt();if (money >= 0 && money < 9999999) {break;} else {System.out.println("金额输入不合理,请重新输入!!");}}
//        System.out.println(money);//    2.假设录入了  1234   -->  拿出数字的每一位  去找对应的中文汉字String moneyStr = "";while (true) {//            从右往左获取数据,因为右侧是数据的个位int ge = money % 10;   // 1234 -->   4 3 2 1
//    3.将汉字拿出来 进行拼接String capitalNumber = getCapitalNumber(ge);    // 4 3 2 1   -->  肆 叁 贰 壹
//            moneyStr = moneyStr + capitalNumber;
//            ""  +  "肆"="肆"   第一次循环结束之后:moneyStr="肆"
//            "肆"+"叁"="肆叁"   第二次循环结束之后:moneyStr="肆叁"
//            因为是拿到的汉字反过来的 所以拼接的时候反着拼moneyStr = capitalNumber + moneyStr;   //第一次: 肆+""=肆   第二次: 叁+肆 =叁肆money = money / 10;
//            如果数字上的每一位全部获取到了,那么money记录的就是0,此时循环结束if (money == 0) {break;}}
//        System.out.println(moneyStr);//    4.判断汉字个数是否到达了七位 没有到达进行补零int count = 7 - moneyStr.length();for (int i = 0; i < count; i++) {moneyStr = "零" + moneyStr;}
//        System.out.println(moneyStr);    //零零零壹贰叁肆//    5.创建一个数组用于存储金额单位:  "佰","拾","万","千","佰","拾","元"String[] arr = {"佰", "拾", "万", "千", "佰", "拾", "元"};//    6.遍历数组,得到每一位单位 将单位插入到已经完成补零的金额中  打印输出String result = "";for (int i = 0; i < arr.length; i++) {//            方法一:得到用索引取出每一位中文金额  并将其插入单位中 直接进行打印char c = moneyStr.charAt(i);     //遍历moneyStr  依次得到 零 零 零 壹 贰 叁 肆
//            System.out.print(c);
//            System.out.print(arr[i]);
//            方法二:直接用字符拼接 打印输出result = result + c + arr[i];}System.out.println(result);}//    创建一个方法来用数字找到对应的中文      查表法
//    1.我要干嘛?   用数字找到对应汉字
//    2.我需要什么东西?   数字
//    3.调用处是否需要用到方法里面的结果?  要public static String getCapitalNumber(int number) {String[] arr = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};return arr[number];}
}

3.3运行结果

3.4.需要注意的点

一些代码详解里面的小片段(只针对需要注意的地方进行解释,不是完整的代码!!)

代码如下(示例):


四、拓展知识

4.1数组查表法

数组查表法:根据键盘录入的数字作为索引,查找数组索引中对应的元素 。

 public static String getIndex(int index) {String[] arr = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};return arr[index];}

4.2 charAt(i)函数和str.charAt(i)函数

charAt(i) 函数: 是获取字符串中i位置的字符
str.charAt(i)函数 :是一个字符串方法,它返回字符串中指定位置的字符。其中 i 是要检索的字符在字符串中的位置,这个位置是从0开始算的。该方法会返回一个字符串类型的值,实际上当我们使用该方法时,在 JavaScript 内部它返回的是一个表示该字符的 Unicode 编码值,而不是一个数字或者字符本身。但对于大多数情况,这两者是可以互相转换的,因为每个字符都有一个唯一的 Unicode 编码点,而且这些编码点和 ASCII 码表中的数字和字符相对应。如果我们想输出该字符本身而不是它的 Unicode 编码值,则可以将它与空字符串进行连接,例如: str.charAt(i) + “”,或者使用模板字面量插入该字符,例如${str.charAt(i)}。

两者的区别:在JavaScript中,charAt(i)是一个字符串的方法,它用于返回一个字符串中指定索引位置(i)的字符。例如,如果有一个字符串"hello",那么调用该方法str.charAt(0)将返回"h"。而str.charAt(i)与charAt(i)类似,只不过前者是在一个具体的字符串对象上调用该方法,而后者是直接使用该全局函数来执行该操作。因此,str.charAt(i)中的str表示一个已声明的字符串变量或字符串对象。

总结

亲爱的小伙伴们,到这里小编就要结尾咯!开心开心~

以上就是Java应用场景之一的数字金额转换成大写的汉字金额,此外字符串的应用场景还有许多许多,如果小编想到并且觉得不错的话会陆续出新篇章,欢迎小伙伴们和我一起探讨。

如果文章有需要改正的地方或者有不明白的欢迎小伙伴们留言或私信哦!

【简单易懂】Java字符串应用场景:数字金额转换成大写汉字金额【金额转换】相关推荐

  1. java 首字母小写_java实现将字符串中首字母转换成大写,其它全部转换成小写的方法示例...

    本文实例讲述了java实现将字符串中首字母转换成大写,其它全部转换成小写的方法.分享给大家供大家参考,具体如下: public class TestSubstring { public static ...

  2. C小程序-将输入的数字转换成大写汉字

    C小程序-将输入的数字转换成大写汉字C int money,count=0;int i=0;int moneys[6];//定义了输入数字的最高位数char unit[10][2]={"零& ...

  3. js将数字转换成大写汉字

    <html><head><meta http-equiv="Content-Type" content="text/html; charse ...

  4. js 将金额转换成大写汉字

    function convertCurrency(money) { //汉字的数字 var cnNums = new Array('零', '壹', '贰', '叁', '肆', '伍', '陆', ...

  5. 价格数字转换成大写汉字的一个类

    /****************************以下是头文件******************************/ class CNumToHan  { public:  CStri ...

  6. 人民币金额转换成大写格式(java)

    实现本实例关键在于以下几点: 将数字格式化,如果存在小数部分,将其转换为3位小数(DecimalFormat方法): 分别将整数部分与小数部分转换为大写方式,并插入金额单位: 组合转换后整数部分与小数 ...

  7. 遍历这些字符串,如果字符串没有包含数字的,就将字符串中的小写字母转成大写字母并打印字符串

    package cn.silence;public class StrDemo3 {/*** 有如下字符串:"12ab","java","cd&quo ...

  8. 遍历这些字符串,如果字符串没有包含数字的, * 就将字符串中的小写字母转成大写字母并打印字符串

    package Day08;import java.util.Scanner;/*** 有如下字符串:"12ab","java","cd", ...

  9. 小写数字转大写_不得不说的Excel小技巧:设置单元格格式将小写金额转换成大写...

    大家好,我是小秋,近期一段时间比较忙,没有在今日头条上更新原创文章了.希望朋友们多多见谅,下面与大家分享一个Excel实用小技巧:如何设置单元格格式将小写金额转换成大写? 1.应用场景 在报销单.收据 ...

最新文章

  1. Springboot 日志管理模块编写记录
  2. 以演进式的架构来让系统为变化做好准备
  3. 电磁场第二章公式总结
  4. c修改datatable单元格的值_神奇的VBA编程:批量拆分单元格数据
  5. 安全多方计算(MPC)从入门到精通:简易教程
  6. ZYNQ ZCU102视频编码开发
  7. TCP/IP长连接和短连接
  8. DolbyAudio访问杜比音效驱动程序时发生问题,请重新启动计算机或......
  9. 树莓派4b--红外遥控模块
  10. GIT、小乌龟、语言包下载
  11. Python 菜单中的分割线
  12. H3C防火墙-安全域配置举例
  13. GTK构件之杂项构件
  14. Python Django框架下做电商项目
  15. 如何免费获取文件高速下载直链
  16. 二维占用栅格地图Occupancy grid maps
  17. 青龙面板搭建及记录踩过的坑
  18. brew install gpg
  19. Allegro PCB对某个网络进行高亮以及取消高亮
  20. 洛谷P1080 [NOIP2012 提高组] 国王游戏(贪心,高精度)

热门文章

  1. 【内网】--信息收集
  2. 聆听音乐6cd下载_机器聆听如何改变智能家居体验
  3. 猫咪去哪儿了(GIS版)——用Google Earth上的GPS追踪喵星人
  4. 益聚星荣:卖衣服不如卖房?波司登、鸿星尔克纷纷出手…
  5. Python3之面向对象
  6. 计算机网络---网络工程
  7. 每天只问小孩四句话---改变孩子一生
  8. 安防中端传输设备-PoE交换机在2016的异军突起
  9. Spring 学习记录 冷兵器时代的故事
  10. Facebook audience network收款有哪些方法?