Java 计算数字各位数值之和并转化为拼音输出
问题描述:读入一个正整数 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 计算数字各位数值之和并转化为拼音输出相关推荐
- JAVA利用循环语句while计算数字1到100的和,并输出
package day04; import java.util.Scanner; public class Demo {public static void main(String[] args) { ...
- 从字符串中取出数字,并计算数字之和
2019独角兽企业重金招聘Python工程师标准>>> package test; import java.util.ArrayList; import java.util.List ...
- Java黑皮书课后题第7章:*7.11(统计:计算标准差)编程练习题5.45计算数字的标准差。本题…计算标准差,使用一个数组存储x的每个数。编写测试程序,提示用户输入10个数字,显示平均值和标准差
7.11(统计:计算标准差)编程练习题5.45计算数字的标准差.本题-计算标准差,使用一个数组存储x的每个数.编写测试程序,提示用户输入10个数字,显示平均值和标准差 题目 题目描述与运行示例 破题 ...
- Java黑皮书课后题第7章:**7.3(计算数字的出现次数)编写程序,读取1到100之间的整数,然后计算每个数出现的次数。假定输入0表示结束
7.3(计算数字的出现次数)编写程序,读取1到100之间的整数,然后计算每个数出现的次数 题目 题目描述+运行示例 破题 法一 法二 代码 法一:硬生生解出来 法二完整代码 题目 题目描述+运行示例 ...
- ##Java 将数字月份转化为英语月份
Java 将数字月份转化为英语月份 例如将数字 11月 转化为英语 November package ddd; // 例如将数字 11月 转化为英语 Novemberimport java.text. ...
- 使用do-while循环结构实现:计算1~50中是7的倍数的数值之和并输出
//使用do-while循环结构实现:计算1~50中是7的倍数的数值之和并输出 public class P113T3 { public static void main(String[] args) ...
- java电话键盘字母数字转换_用Java语言将一个键盘输入的数字转化成中文输出
用Java语言将一个键盘输入的数字转化成中文输出 将一个键盘输入的数字转化成中文输出(例如:输入:1234567 输出:一百二拾三万四千五百六拾七)用java语言实现,,请编一段... 将一个键盘输入 ...
- Java之——数字金额转化为英文金额
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/52599090 今天,给大家带来一篇基于Java将数字金额转化为英文金额的示例代码, ...
- 用Java求一个三位数,该三位数是与其每位数字的阶乘之和
题目:一个三位数,该三位数与其每位数字的阶乘之和 代码: public class TestSum {public static void main(String[] args) {int a, b, ...
最新文章
- MySQL常用存储引擎之MyISAM
- BZOJ5289 洛谷4437:[HNOI/AHOI2018]排列——题解
- 无聊说说 strong VS weak
- HTML5在手机端实现视频全屏展示
- AD选择板边覆铜教程
- Win_Server_2003-2016_加密勒索事件必打补丁合集
- springcloud -netflix学习总结
- java 均值方差 计算器_方差均值计算器
- 非线性求解器 Casadi (c++使用例子)
- flutter:掌握布局约束Constraint
- 微信小程序显示当前时间
- 遥感图像变化检测数据集
- Maven的seting配置及命令
- 同事之间都有哪些潜规则?
- MindMapper中的主题该怎样进行修改
- Spring源码整体分析
- signature=66ee059bbdb9aa026cf4962f2fe679a7,a00896.html
- 79. Leetcode 871. 最低加油次数 (堆-技巧三-事后小诸葛)
- 为什么很多智能锁没有防破坏报警功能?
- Matlab中legend函数使用
热门文章
- 【牛客】幸运数字II题解
- 2018.9.18中科38所面试
- 按学号和姓名进行查询c语言,数据库实验4 数据查询(答案)
- 如何查询Office版本号
- 无觅科技推荐: TikTok直播专线怎么选?说说TikTok直播加速的4种方案
- windows下vscode安装kubernetes环境并打开阿里云CSK
- [转载]国内外知名互联网公司的口号你知道几个?
- 【爬虫搜索引擎工程师,360buy京东商城(集团总部技术系统)】前程无忧官方招聘网站...
- 英汉字典程序C语言,分享纯C语言英汉字典源码
- Linux进程间通信(七)---共享内存之shmget()、shmat()、shmdt()及其基础实验