问题描述:读入一个正整数 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. MySQL常用存储引擎之MyISAM
  2. BZOJ5289 洛谷4437:[HNOI/AHOI2018]排列——题解
  3. 无聊说说 strong VS weak
  4. HTML5在手机端实现视频全屏展示
  5. AD选择板边覆铜教程
  6. Win_Server_2003-2016_加密勒索事件必打补丁合集
  7. springcloud -netflix学习总结
  8. java 均值方差 计算器_方差均值计算器
  9. 非线性求解器 Casadi (c++使用例子)
  10. flutter:掌握布局约束Constraint
  11. 微信小程序显示当前时间
  12. 遥感图像变化检测数据集
  13. Maven的seting配置及命令
  14. 同事之间都有哪些潜规则?
  15. MindMapper中的主题该怎样进行修改
  16. Spring源码整体分析
  17. signature=66ee059bbdb9aa026cf4962f2fe679a7,a00896.html
  18. 79. Leetcode 871. 最低加油次数 (堆-技巧三-事后小诸葛)
  19. 为什么很多智能锁没有防破坏报警功能?
  20. Matlab中legend函数使用

热门文章

  1. 【牛客】幸运数字II题解
  2. 2018.9.18中科38所面试
  3. 按学号和姓名进行查询c语言,数据库实验4 数据查询(答案)
  4. 如何查询Office版本号
  5. 无觅科技推荐: TikTok直播专线怎么选?说说TikTok直播加速的4种方案
  6. windows下vscode安装kubernetes环境并打开阿里云CSK
  7. [转载]国内外知名互联网公司的口号你知道几个?
  8. 【爬虫搜索引擎工程师,360buy京东商城(集团总部技术系统)】前程无忧官方招聘网站...
  9. 英汉字典程序C语言,分享纯C语言英汉字典源码
  10. Linux进程间通信(七)---共享内存之shmget()、shmat()、shmdt()及其基础实验