看到的一道美团的面试题,示例:输入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的问题,并且使代码优化呢?

给一串阿拉伯数字,把它翻译成汉语相关推荐

  1. 翻译成汉语的英文版书籍,为什么会薄很的原因

    2019独角兽企业重金招聘Python工程师标准>>> "如果两个系统具有同样大的消息量,如一篇用不同文字写的同一文章,由于汉字的信息量较大,中文文章应用的汉字就比英文文章 ...

  2. 他们不会使用计算机的英语句,给下列的句子翻译成英语。

    请把下列句子翻译成英语.1.这是我们的学校.??????????... 请把下列句子翻译成英语. 1.这是我们的学校. 2.该睡觉了. 3.这是你的裙子吗? 4.那儿有多少只绵羊? 5.你想买什么? ...

  3. 华为机试—拼音翻译成阿拉伯数字(只有数字拼音)

    题目:拼音翻译成阿拉伯数字(只有数字拼音) 输入一串拼音,输出它代表的阿拉伯数字(Ling,Yi,Er,San,Si,Wu,Liu,Qi,Ba,Jiu),数字不会超过十万 为了处理方便,输入一定是只有 ...

  4. 每天一道算法题——拼音翻译成阿拉伯数字(只有数字拼音)

    题目:拼音翻译成阿拉伯数字 #include<iostream> #include<string> using namespace std;int str2num(string ...

  5. 华为机试—拼音翻译成阿拉伯数字(有Wan,Qian,Bai,Shi单位)

    题目:拼音翻译成阿拉伯数字 输入一串拼音,输出它代表的阿拉伯数字(Ling,Yi,Er,San,Si,Wu,Liu,Qi,Ba,Jiu),数字不会超过十万 为了处理方便,输入一定是数字带单位的,例如1 ...

  6. js将阿拉伯数字翻译成中文的大写数字

    // 将阿拉伯数字翻译成中文的大写数字 export const numberToChinese = (num) => {     var AA = new Array("零" ...

  7. 把阿拉伯数字翻译成中文大写数字

    package com.zcw.zcwbook.demo15;/*** @program: zcwbook* @description: 把阿拉伯数字翻译成中文大写数字* @author: zhaoc ...

  8. 科学家研发出“读心术”,直接将脑电波翻译成文本,错误率低至 3%

    2020-04-01 22:42 导语:虽然算法还只能处理有限的句子,但是识别率之高已让世人惊叹. 美国加州大学旧金山分校的科学家,已经训练出一种算法,可以直接将受试者的脑电波实时翻译成句子,错误率仅 ...

  9. 编译原理(四)之解析语言翻译成三地址代码

    选择部分C语言的语法成分,设计其词法语法语义分析程序. 设计并实现一个一遍扫描的词法语法语义分析程序,将部分C语言的语法成分翻译成三地址代码,要求有一定的出错提示和错误恢复功能. 例如简单赋值语句: ...

最新文章

  1. Java 之String、StringBuffer 和 StringBuilder 三者区别介绍
  2. java怎么定义字符长度_java – 当字符串长度超过列长度定义时,如何以静默方式截断字符串?...
  3. SVN使用之分支、合并
  4. Almost All Divisors
  5. 多线程的三种实现方法
  6. 无忧企业系统的getshell
  7. 函数计算搭建 Serverless Web 应用(二)- 自定义域名
  8. 借助波音公司打造优秀按单制造(MTO II)管理系统
  9. java web环境_java web
  10. compile error
  11. ios visio流程图_微软visio绘图查看器ios版下载|Microsoft Visio Viewer iphone/ipad版下载 v1.17 - 跑跑车苹果网...
  12. matlab p值 z值,显著性水平 p值 z值
  13. 一文掌握 Java8 Stream 中 Collectors 的 24 个操作
  14. html文字竖排垂直居中显示,CSS文字竖排效果且垂直居中水平居中
  15. 【我们一起写框架】MVVM的WPF框架(五)—完结篇
  16. 33、什么是 AIO?
  17. 关于阿里云云虚拟主机上传php论坛代码的那点事
  18. jQuery源码分析-10事件处理-Event-事件绑定与删除-bind/unbind+live/die+delegat/unde
  19. 2018拼多多校招【大整数相乘】Python解法
  20. 2017国庆 济南清北学堂 8天乐

热门文章

  1. You've Raised The Children; Time For A Job?
  2. FIL有了虚拟机就是起飞的第一步吗?
  3. ublox usbmon报文分析工具
  4. chmod 命令 (chmod 0660)
  5. 【每日一题Day180】LC2409统计共同度过的日子数 | 模拟
  6. python小练习--GUI设计
  7. 图标风格总结-UI线性图标优漫动游
  8. 最新代shua网秒shua订单量源码 上传即可使用
  9. python入门电子版-Python3零基础教材电子书合集
  10. android接口的使用,Android - 接口、MVP 的使用心得