小写数字转化为大写数字
本以为是个很简单的题,但写完之后发现各种bug,各种改。只是实现了功能而已。程序效果如下:
请输入您的数字(输入quit退出):
1
一
103
一百零三
12349234
一千二百三十四万九千二百三十四
10023002340
一百亿零二千三百万零二千三百四十
100000000000
一千亿
324034030
三亿二千四百零三万四千零三十
1000002130
一十亿零二千一百三十
源代码如下:
import java.util.Scanner;public class Convert {public static String[] units= {"","十","百","千","万"};public static String[] flagUnits= {"","万","亿"};public static void main(String[] args){Scanner sc=new Scanner(System.in);System.out.println("请输入您的数字(输入quit退出):");while(true){String number=sc.nextLine();if(number.equals("quit"))break;System.out.println(getResult(number));}}static String getResult(String number){int numberLen=number.length();int subFlag=(int) Math.ceil(number.length()/4.0);boolean isFirstCharArray=true;StringBuffer sbResult=new StringBuffer();int notZeroFlag=0;while(number.charAt(numberLen-1-notZeroFlag)=='0'){ notZeroFlag++;}while(subFlag>(notZeroFlag)/4){ if(isFirstCharArray){char[] subCharArray=new char[numberLen%4==0?4:numberLen-(subFlag-1)*4];subFlag--;number.getChars(0, subCharArray.length, subCharArray, 0);sbResult.append(getSubResult(subCharArray,subFlag,notZeroFlag));isFirstCharArray=false;}else{ char[] subCharArray=new char[4];number.getChars(numberLen-(subFlag--)*4, numberLen-(subFlag)*4, subCharArray, 0);sbResult.append(getSubResult(subCharArray,subFlag,notZeroFlag));}}return deleteZero(sbResult);}static StringBuffer getSubResult(char[] sub,int subflag,int notZeroFlag){int zeroFlag=0;while(sub[sub.length-1-zeroFlag]=='0') {zeroFlag++;if(zeroFlag==sub.length){return new StringBuffer("零");}}StringBuffer sb=new StringBuffer();for(int i=0;i<sub.length-zeroFlag;i++){sb.append(charToStr(sub[i]));if(sub[i]=='0'){continue; }sb.append(units[sub.length-i-1]);}sb.append(flagUnits[subflag]);if(zeroFlag!=0&&subflag!=0&¬ZeroFlag/4!=subflag){sb.append("零");}return sb;}static String deleteZero(StringBuffer sb){for(int i=0;i<sb.length()-1;i++){if(sb.charAt(i)==sb.charAt(i+1)){sb.replace(i, i+1, "");i--;}}return sb.toString();}static String charToStr(char numChar){switch(numChar){case '1':return "一";case '2':return "二";case '3':return "三";case '4': return "四";case '5':return "五";case '6':return "六";case '7':return "七";case '8':return "八";case '9':return "九";case '0':return "零";default:return "";}}
}
小写数字转化为大写数字相关推荐
- 关于把小写数字转化为大写数字的java代码
import java.math.BigDecimal; public class ConvertNumber { /** 定义数组存放数字对应的大写 */ private final static ...
- 用VB代码把4位数字转化为汉字数字
用VB代码把4位数字转化为汉字数字. '把四位数字转换成大写汉字 Public Function Big(ByRef n As String) As ObjectDim i As ObjectDim ...
- JS字符串过滤数字_过滤大写数字
JS字符串过滤数字_过滤大写数字 代码案例: //数字替换 if(data.summary){data.summary=data.summary.replace(/[\d|壹|贰|叁|肆|伍|陆|柒| ...
- 设计函数实现将一个字符串中小写字母转化为大写字母
题目: 设计函数实现将一个字符串中小写字母转化为大写字母 #include<stdio.h> #include<stdlib.h> void uppers(char *s,ch ...
- 输入字符,如果是大写则转化为小写,如果是小写则转化为大写
输入字符,如果是大写则转化为小写,如果是小写则转化为大写 #include<stdio.h> int main(){ char ch; printf("Please enter ...
- 将(123)数字转换成大写数字(壹,贰,弎)
此方法 将(123)数字转换成大写数字(壹,贰,弎) RMBUtils.toChineseUnit()
- python语言中ch_已知在Python语言中 upper() 函数可以将英文小写字母转化为大写字母,例如: 'cpda'.upper() CPDA 则下列语句的输出结果为 CHINACPD...
已知在Python语言中 upper() 函数可以将英文小写字母转化为大写字母,例如: >>> 'cpda'.upper() CPDA 则下列语句的输出结果为 CHINACPDA a ...
- Element-ui中InputNumber 将日文全角输入法的数字转化为半角数字
Element-ui中InputNumber 将日文全角输入法的数字转化为半角数字 发现问题 修改Element-UI 的 InputNumber 计数器组件 效果 发现问题 这周测试人员在测试的时候 ...
- 如何把大写金额变为小写数字_怎样将带有小数点的小写数字转化为大写
Excel要将人民币小写金额转换成大写格式,将自定义格式类型中的"G/通用格式"改为G/通用格式"元"" 来实现.但在转换小数时却出现了问题,比如12 ...
最新文章
- Linux命令grep
- 未授权用户在此计算机上的的请求登陆类型
- 中小企业如何实现在家研发软件?看这个就够了
- BZOJ-2337-XOR和路径
- c语言最长公共子序列_LCS(最长公共子序列)
- 【机器学习基础】深入理解Logistic Loss与回归树
- Android Notification实现推送消息过程中接受到消息端有声音及震动及亮屏提示
- @codeforces - 1096G@ Lucky Tickets
- 在Tomcat上设置和使用Apache Solr
- 【深度揭秘】百度、阿里、腾讯内部岗位级别和薪资结构,附带求职建议!
- leetcode —— 1282. 用户分组
- 随想录(源代码预处理命令)
- pip下载速度慢的解决方法
- sci协议集群服务器,唠嗑|新出了关于SCI的规定,可我连SCI分区都没搞明白
- python多线程抢票_抢票 抢票 抢票!Python大牛带你实现12306全自动抢票
- 跨实例查询 mysql_SQL语句怎么搞定跨实例查询?
- wo-27s管理员账户和密码_“无法使用内置管理员账户打开”应用
- Nginx 重写功能(location / rewrite)
- ArrayList的last方法
- 肖特基二极管的反向恢复过程
热门文章
- MS Visual Studio 2008 编译错误 microsoft visual studio 9.0\vc\include\new.h(60) : error C2065: '_In_opt_
- 基于tornado实现web camera
- Python3之旅之计算机基础知识
- C/C++冷门知识总结
- 【无标题】怎么申请3A认证?
- Setting property ‘source‘ to ‘org.eclipse.jst.jee.server
- 数据库DB之MySQLOracle
- 分布式 —— 基于Raft算法的KV服务
- 人工智能调研报告汇总
- P2615 神奇的幻方