解题思路:将读入的数字从后往前数,每四个划为一组,数字长度不够4整除的前补0使之刚好被4整除

如:1234567009,即被分成了0012,3456,7009三组

其中,第一组(从左往右数)的单位是"yi"(亿),第二组的单位是"wan"(万)(第三组的单位是1,可以不包含在结果里)

然后每组分开读数,指针i初始化指向左边第一个非零数字,依次往后扫描

对于每一组,都有如下情况:

①i%4 = 0时,处在"qian"(千)位,非0时,读出数字,再追加一个"qian"

②i%4 = 1时,处在"bai"(百)位,非0时,读出数字,再追加一个"bai"

③i%4 = 2时,处在"shi"(十)位,非0时,读出数字,再追加一个"shi"

④i%4 = 3时,处在个位,如果是0,不用读出来,如果非0,读出数字;最后不要忘了,再追加该组的单位(第三组可以不加)

大体思路就是这样,还有些细节部分没细说(如连续零的处理,"yi shi"和"shi"的处理等),大家可以直接看代码部分

注意事项:

1.一般情况下,连续的零只需读出一个(特殊情况下,即使有连续的零也不需要读出,如1000003000(shi yi san qian))

2.shi还是yi shi的处理

3.末尾可以有一个多余的空格

参考代码:import java.util.Scanner;

public class T1469 {

public static void main(String[] args) {

Scanner in = new Scanner(System.in);

String digit[] = {"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};

while(in.hasNext()) {

String n = in.next();

int cnt = n.length()%4;

String tmp[] = {"0000","000","00","0"};

n = tmp[cnt]+n;//把输入的数字拼成4的整数倍长度

String ans = "";

int nzero = 0;//记录连续0的个数

for(int i =4-cnt;i

if(n.charAt(i) != '0') {

//遇到第一个非零数字,且有多个连续的0,且非零数字不在下一组的第一个位置,只需读出一个0

if(nzero>0 && i%4 != 0)

ans += "ling ";

nzero = 0;

if(i%4==0)//千位

ans += digit[n.charAt(i)-'0'] + " qian ";

else if(i%4==1) //百位

ans += digit[n.charAt(i)-'0'] + " bai ";

else if(i%4==2) //十位

ans += digit[n.charAt(i)-'0'] + " shi ";

else    //个位

ans += digit[n.charAt(i)-'0'] + " ";

}

else

nzero++;

if(n.length() - i == 5 && nzero

ans += "wan ";

else if(n.length() - i == 9)//如果位于亿位上,需要加“yi”

ans += "yi ";

}

if(ans.indexOf("yi shi") == 0)//"yi shi"开头的话要去掉"yi "

ans = ans.substring(3,ans.length());

System.out.println(ans);

}

in.close();

}

}

java 读音_数的读法 (Java代码)相关推荐

  1. swift golang java,解决两数之和 (Javascript, Java, C#, Swift, Kotlin, Python,C++, Golang)

    解决两数之和(Javascript, Java, C#, Swift, Kotlin, Python,C++, Golang) 给定一个整数数组,返回两个数字的索引,以便它们加起来成为一个特定的目标. ...

  2. java内核_测量时间:从Java到内核再到

    java内核 问题陈述 当您深入研究时,即使是最基本的问题也会变得很有趣. 今天,我想深入研究一下Java时间. 我们将从Java API的最基础知识开始,然后逐步降低堆栈:通过OpenJDK源代码g ...

  3. 软件工程 java实现_软件工程作业——WC Java实现

    项目要求: 实现一个统计程序,它能正确统计程序文件中的字符数.单词数.行数,以及还具备其他扩展功能,并能够快速地处理多个文件. 具体功能 -c 返回文件字符数 -w 返回词的数目 -l 返回行数 扩展 ...

  4. 怎样重java初级到java中级_(续)Java进阶之路--从初级菜鸟到高级工程师

    基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io的语法,虚拟机方面的语法. 1.一个".java"源文件中是否可以包括 ...

  5. 如何创建第一个java程序_创建第一个java程序

    开发环境:ubuntu 10.04 + eclipse 方法一:打开eclipse编译器,选择 File->New->Java project,输入工程名称,点击finish,在工程目录中 ...

  6. 常用的java虚拟机_带你了解 JAVA虚拟机 面试必备

    Java运行时数据区: Java虚拟机在执行Java程序的过程中会将其管理的内存划分为若干个不同的数据区域,这些区域有各自的用途.创建和销毁的时间,有些区域随虚拟机进程的启动而存在,有 些区域则是依赖 ...

  7. vs java调试_基于VSCode的Java编程语言的构建调试环境搭建指南(作业三)

    1.Java编译环境的搭建(CodeRunner) CodeRunner的强大之处在于它支持许多语言,只要选好语言,就直接可以写代码,即开即用的模式.时至今日,Code Runner已经有了超过400 ...

  8. java 精通_你真的精通Java吗?

    简历和自我介绍上经常能够读到"精通Java"这样的话,有人和我说,精通Java的人太多了,精通Java已经不能算亮点.不能给自己加分了.可是事实真是这样吗? 对于语言的学习,我有一 ...

  9. java相册_精致小巧的java相册制作方法

    本文实例为大家分享了java相册制作方法,供大家参考,具体内容如下 注: 1)html上的图片是静态指定的.当更新了新的图片时必须手工更新.所以使用Servlet读取本地images中的所有图片,动态 ...

  10. java基准测试_星期五基准功能Java

    java基准测试 让我们的产品所有者有一天变得疯狂,并要求您执行以下操作: From a set of Strings as follows : " marco_8"," ...

最新文章

  1. [华为机试真题][2014]62.去除重复字符并排序
  2. Hibernat之关系的处理多对多
  3. 第十届蓝桥杯决赛JavaC组真题——详细答案对照(完整版)
  4. php二维数组排序 按照指定的key 对数组进行排序
  5. python模块实例化_python中zipfile模块实例化解析
  6. python编辑器中文字体倒立的_matplotlib的安装和允许中文及几种字体
  7. Docker学习总结(22)——Docke run命令详解
  8. C++ delete的三种面貌
  9. sql数据库快照与恢复 规则绑定
  10. 【PowerDesigner】PowerDesigner的下载及安装
  11. usb无线网卡android,台式机轻松上网:教你制作USB无线网卡
  12. win7 计算机定时关机脚本,电脑设置定时关机的方法 win7系统怎么设置定时关机...
  13. 米3换完屏信号无服务器,米3更新系统找不到云服务器
  14. ims系统 呈现服务器,ims系统
  15. java+es+nested_Elasticsearch中的关联查询。Nested类型介绍及查询原理。。
  16. 西门子服务器提升抱闸信号不输出,SINAMICS V90伺服抱闸接线及配置详解
  17. 图解CPU生产全过程——以intel CORE i7为例,展望CPU架构
  18. NotePad++针对一批数据批量添加双引号和逗号以及去除空格的处理技巧
  19. 微信订阅号签到功能_微信公众号积分签到功能怎么添加,怎么制作微信签到赚积分...
  20. GO语言实现P2P网络-客户端实现并且运行和测试

热门文章

  1. 前装车载导航搭载率突破50%,谁在领跑背后的导航引擎
  2. DPDK Release 21.02
  3. unity 导入STL格式模型(STL二进制格式文件)
  4. 如何在JMP中快速实现报表的个性化与可视化?
  5. 求大佬发一个unity curvy的资源包啊
  6. 详解YUV420数据格式
  7. 软件定义无线电 (SDR) 和业余试验
  8. 优思学院|精益六西格玛中的8大浪费是什么?
  9. 去掉图标_小图标创建|精选博客
  10. 老男孩学python_在老男孩如何学习python?老男孩python课程好吗、