问题描述:读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。

示例:

输入:

1234567890987654321123456789

输出:

yi san wu

分析: 由于数值长度已经超出了int跟integer的范围,biginterger的操作又不怎么方便,因此我们采用字符串的形式接收,然后通过字符串的位运算将chae转化为int,进行加法。

import java.util.Scanner;
public class Main{public static void main(String[] args){Scanner s = new Scanner(System.in);String str = s.next();int sum = 0;//计算每一位之和for(int i=0;i<str.length();i++){//将每一个位置上的String值转化为intsum += Integer.parseInt(str.substring(i, i+1));}//在将和转化为字符串,方便操作每一位String string = String.valueOf(sum);for(int i=0;i<string.length();i++){//将每一个位置上的String值转化为intint x = Integer.parseInt(string.substring(i, i+1));if(x ==0)System.out.print("ling");if(x ==1)System.out.print("yi");if(x ==2)System.out.print("er");if(x ==3)System.out.print("san");if(x ==4)System.out.print("si");if(x ==5)System.out.print("wu");if(x ==6)System.out.print("liu");if(x ==7)System.out.print("qi");if(x ==8)System.out.print("ba");if(x ==9)System.out.print("jiu");//最后一个拼音后不加空格if(i != string.length()-1)System.out.print(" ");}}
}

不足之处:1、代码中Integer.parseInt(str.substring(i, i+1));应该用str.charAt(i) - '0';代替

2、应该用switch语句代替if判断加快程序执行效率( switch...case与if...else的根本区别在于,switch...case会生成一个跳转表来指示实际的case分支的地址,而这个跳转表的索引号与switch变量的值是相等的。从而,switch...case不用像if...else那样遍历条件分支直到命中条件,而只需访问对应索引号的表项从而到达定位分支的目的。)

Java 计算数字各位数值之和并转化为拼音输出相关推荐

  1. JAVA利用循环语句while计算数字1到100的和,并输出

    package day04; import java.util.Scanner; public class Demo {public static void main(String[] args) { ...

  2. 从字符串中取出数字,并计算数字之和

    2019独角兽企业重金招聘Python工程师标准>>> package test; import java.util.ArrayList; import java.util.List ...

  3. Java黑皮书课后题第7章:*7.11(统计:计算标准差)编程练习题5.45计算数字的标准差。本题…计算标准差,使用一个数组存储x的每个数。编写测试程序,提示用户输入10个数字,显示平均值和标准差

    7.11(统计:计算标准差)编程练习题5.45计算数字的标准差.本题-计算标准差,使用一个数组存储x的每个数.编写测试程序,提示用户输入10个数字,显示平均值和标准差 题目 题目描述与运行示例 破题 ...

  4. Java黑皮书课后题第7章:**7.3(计算数字的出现次数)编写程序,读取1到100之间的整数,然后计算每个数出现的次数。假定输入0表示结束

    7.3(计算数字的出现次数)编写程序,读取1到100之间的整数,然后计算每个数出现的次数 题目 题目描述+运行示例 破题 法一 法二 代码 法一:硬生生解出来 法二完整代码 题目 题目描述+运行示例 ...

  5. ##Java 将数字月份转化为英语月份

    Java 将数字月份转化为英语月份 例如将数字 11月 转化为英语 November package ddd; // 例如将数字 11月 转化为英语 Novemberimport java.text. ...

  6. 使用do-while循环结构实现:计算1~50中是7的倍数的数值之和并输出

    //使用do-while循环结构实现:计算1~50中是7的倍数的数值之和并输出 public class P113T3 { public static void main(String[] args) ...

  7. java电话键盘字母数字转换_用Java语言将一个键盘输入的数字转化成中文输出

    用Java语言将一个键盘输入的数字转化成中文输出 将一个键盘输入的数字转化成中文输出(例如:输入:1234567 输出:一百二拾三万四千五百六拾七)用java语言实现,,请编一段... 将一个键盘输入 ...

  8. Java之——数字金额转化为英文金额

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/52599090 今天,给大家带来一篇基于Java将数字金额转化为英文金额的示例代码, ...

  9. 用Java求一个三位数,该三位数是与其每位数字的阶乘之和

    题目:一个三位数,该三位数与其每位数字的阶乘之和 代码: public class TestSum {public static void main(String[] args) {int a, b, ...

最新文章

  1. 计算机视觉未来走向:视频理解等5大趋势详解
  2. 自己动手丰衣足食之 jQuery 数量加减插件
  3. postman安装和简单使用
  4. foreach lambda写法_Java8新特性之forEach+Lambda 表达式遍历Map和List
  5. 启航RPA卓越生态联盟,艺赛旗打造最强RPA产业生态圈...
  6. C++新特性探究(十八):智能指针
  7. css控制div显示/隐藏方法及2种方法比较原码[转]
  8. 安装Linux系统的一些问题记载
  9. SAS9.2安装及遇到的问题。安装时提醒Sas安装数据SID文件无效
  10. python读取nc出图_python读取nc文件
  11. opencv存取视频的编码格式 fourcc
  12. 软件开发成本评估怎么做?软件开发成本评估从哪些方面进行?
  13. 搜集的育儿电子书下载大全
  14. MP4之sample信息
  15. lamp兄弟连PHP视频教程 笔记心得
  16. Visio流程图模具:国标1526-89(V2.0.5)
  17. 分析称惠普赶走前任CEO赫德堪比苹果赶走乔布斯
  18. 查看本地IP和服务器端口
  19. linux下文件的total是啥,linux中,ls -l命令显示的total的含义。
  20. 【Linux】定时任务crontab和at命令详解

热门文章

  1. 技美 百人计划 (图形)1.1渲染流程
  2. 51cto——让梦飞翔
  3. C 求爱因斯坦数学题有一条长阶,若每步跨 2阶 ,则 最后剩 l阶,
  4. Translation Rule 和命中法则
  5. Translation Regime介绍
  6. 华为云前端一阶段HTML入门(常用标签 表格标签 表单)
  7. 人类数据总量_人类已产生五十亿GB数据 X一代贡献的数据总量最大
  8. 设置 IIS下虚拟目录或应用程序不继承主站点的web.config
  9. websocket菜鸟教程(1.1)
  10. CKH IOD选择通过CSG增强其数字批发和物联网客户体验