给一串阿拉伯数字,把它翻译成汉语
看到的一道美团的面试题,示例:输入1234,输出一千二百三十四,最大到亿
这道题目的复杂点在于对于数字中零的处理,想了半天想不到好的方法,只能分情况讨论,希望各位大神赐教,代码如下:
public static void translate(int n){String number = n+"";char[] cs = number.toCharArray();StringBuilder sb = new StringBuilder();char[] num = {'零','一','二','三','四','五','六','七','八','九'}; String[] weight = {"","十","百","千"};for(int i=0;i<cs.length;i++){if(cs.length-i==9){sb.append(num[cs[i]-'0']+"").append("亿");}else if(cs.length-i>=5&&cs.length-i<=8){if(cs[i]-'0'!=0){sb.append(num[cs[i]-'0']+"").append(weight[cs.length-i-5]);}else{if(cs.length-i==8){sb.append("零");}else if(cs.length-i==7){if(cs[i-1]=='0'||(cs[i+1]=='0'&&cs[i+2]=='0')){}else {sb.append("零");}}else if(cs.length-i==6){if(cs[i-1]=='0'||cs[i+1]=='0'){}else {sb.append("零");}}}if(cs.length-i==5)sb.append("万");}else{if(cs[i]-'0'!=0){sb.append(num[cs[i]-'0']+"").append(weight[cs.length-i-1]);}else{if(cs.length-i==4){sb.append("零");}else if(cs.length-i==3){if(cs[i-1]=='0'||(cs[i+1]=='0'&&cs[i+2]=='0')){}else {sb.append("零");}}else if(cs.length-i==2){if(cs[i-1]=='0'||cs[i+1]=='0'){}else {sb.append("零");}}}}}System.out.println(sb.toString());}
怎么才能很好的解决出现0的问题,并且使代码优化呢?
给一串阿拉伯数字,把它翻译成汉语相关推荐
- 翻译成汉语的英文版书籍,为什么会薄很的原因
2019独角兽企业重金招聘Python工程师标准>>> "如果两个系统具有同样大的消息量,如一篇用不同文字写的同一文章,由于汉字的信息量较大,中文文章应用的汉字就比英文文章 ...
- 他们不会使用计算机的英语句,给下列的句子翻译成英语。
请把下列句子翻译成英语.1.这是我们的学校.??????????... 请把下列句子翻译成英语. 1.这是我们的学校. 2.该睡觉了. 3.这是你的裙子吗? 4.那儿有多少只绵羊? 5.你想买什么? ...
- 华为机试—拼音翻译成阿拉伯数字(只有数字拼音)
题目:拼音翻译成阿拉伯数字(只有数字拼音) 输入一串拼音,输出它代表的阿拉伯数字(Ling,Yi,Er,San,Si,Wu,Liu,Qi,Ba,Jiu),数字不会超过十万 为了处理方便,输入一定是只有 ...
- 每天一道算法题——拼音翻译成阿拉伯数字(只有数字拼音)
题目:拼音翻译成阿拉伯数字 #include<iostream> #include<string> using namespace std;int str2num(string ...
- 华为机试—拼音翻译成阿拉伯数字(有Wan,Qian,Bai,Shi单位)
题目:拼音翻译成阿拉伯数字 输入一串拼音,输出它代表的阿拉伯数字(Ling,Yi,Er,San,Si,Wu,Liu,Qi,Ba,Jiu),数字不会超过十万 为了处理方便,输入一定是数字带单位的,例如1 ...
- js将阿拉伯数字翻译成中文的大写数字
// 将阿拉伯数字翻译成中文的大写数字 export const numberToChinese = (num) => { var AA = new Array("零" ...
- 把阿拉伯数字翻译成中文大写数字
package com.zcw.zcwbook.demo15;/*** @program: zcwbook* @description: 把阿拉伯数字翻译成中文大写数字* @author: zhaoc ...
- 科学家研发出“读心术”,直接将脑电波翻译成文本,错误率低至 3%
2020-04-01 22:42 导语:虽然算法还只能处理有限的句子,但是识别率之高已让世人惊叹. 美国加州大学旧金山分校的科学家,已经训练出一种算法,可以直接将受试者的脑电波实时翻译成句子,错误率仅 ...
- 编译原理(四)之解析语言翻译成三地址代码
选择部分C语言的语法成分,设计其词法语法语义分析程序. 设计并实现一个一遍扫描的词法语法语义分析程序,将部分C语言的语法成分翻译成三地址代码,要求有一定的出错提示和错误恢复功能. 例如简单赋值语句: ...
最新文章
- Java 之String、StringBuffer 和 StringBuilder 三者区别介绍
- java怎么定义字符长度_java – 当字符串长度超过列长度定义时,如何以静默方式截断字符串?...
- SVN使用之分支、合并
- Almost All Divisors
- 多线程的三种实现方法
- 无忧企业系统的getshell
- 函数计算搭建 Serverless Web 应用(二)- 自定义域名
- 借助波音公司打造优秀按单制造(MTO II)管理系统
- java web环境_java web
- compile error
- ios visio流程图_微软visio绘图查看器ios版下载|Microsoft Visio Viewer iphone/ipad版下载 v1.17 - 跑跑车苹果网...
- matlab p值 z值,显著性水平 p值 z值
- 一文掌握 Java8 Stream 中 Collectors 的 24 个操作
- html文字竖排垂直居中显示,CSS文字竖排效果且垂直居中水平居中
- 【我们一起写框架】MVVM的WPF框架(五)—完结篇
- 33、什么是 AIO?
- 关于阿里云云虚拟主机上传php论坛代码的那点事
- jQuery源码分析-10事件处理-Event-事件绑定与删除-bind/unbind+live/die+delegat/unde
- 2018拼多多校招【大整数相乘】Python解法
- 2017国庆 济南清北学堂 8天乐