解题思路:将读入的数字从后往前数,每四个划为一组,数字长度不够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. OpenCV 【一】—— OpenCV中数组指针、图像分块计算、指针取像素值与MatToEigen方法,内存对齐
  2. python自动化ppt_python自动化怎么操作ppt?
  3. 潘建伟团队进行人类首次洲际量子通信,给奥地利发去了什么?
  4. 为在innodb中什么主键用auto_increment效率会提高
  5. 要啥给啥的写作AI:新闻评论小说都能编,题材风格随便选,真假难辨,16亿参数模型已开源...
  6. (实用)Ubuntu Linux静态IP网络配置
  7. nginx error_log 错误日志配置说明
  8. Nodejs Web网站-请求路径分发
  9. IBM等创建开放虚拟化联盟对抗VMware
  10. php字符串从a到z排序,js怎么实现中文按照A-Z排序
  11. OPENCV回调函数
  12. 分布与并行计算—生产者消费者模型RabbitMQ(Java)
  13. android 瀑布流
  14. 滤波器开发之三:基于算数平均的阶进平滑滤波器
  15. 增量更新同步_干货 | Debezium实现Mysql到Elasticsearch高效实时同步
  16. python笔记记录(包和模块)
  17. postgre管理员 无法访问表_PostgreSQL常见问题处理方法
  18. python--之Python内存监控模块memory_profiler测试
  19. node+express 使用multer进行文件上传,并且以PM2启动时的错误
  20. input标签的type属性汇总

热门文章

  1. 计算机学院实习报告3000字(Java开发实习)--持续更新中,多个专业,以及版本
  2. 学习廖雪峰的Git教程
  3. 数据库课设:简易图书管理系统
  4. 英特尔®以太网700系列的动态设备个性化
  5. 算法基础:NP完全问题
  6. 如何在CAD(CASS)中加载卫星影像
  7. CISP 考试教材《第 3 章 知识域:信息安全管理》知识整理
  8. 博科FC光纤交换机详细配置教程
  9. arduino mega针脚_Arduino MEGA中文数据手册
  10. NOIP2016普及组T4(魔法阵)题解